void timerThread() { BeginBatchDraw(); Start_time = clock(); while (1) { End_time = clock(); time_1 = (int)((End_time - Start_time) / CLOCKS_PER_SEC); settextstyle(20, 0, "宋体"); setcolor(BLACK); sprintf_s(str, " %d s", time_1); outtextxy(10, 10, str); EndBatchDraw(); } }在结束计时器运行的同时不退出图形化界面
时间: 2024-03-07 19:46:32 浏览: 55
如果您想结束计时器的运行,但不退出图形化界面,可以在计时器线程中添加一个共享变量 flag,当 flag 为 true 时,停止计时器的运行,如下所示:
```c++
bool flag = false; // 共享变量
void timerThread() {
BeginBatchDraw();
Start_time = clock();
while (!flag) { // 当 flag 为 true 时停止计时器的运行
End_time = clock();
time_1 = (int)((End_time - Start_time) / CLOCKS_PER_SEC);
settextstyle(20, 0, "宋体");
setcolor(BLACK);
sprintf_s(str, " %d s", time_1);
outtextxy(10, 10, str);
EndBatchDraw();
}
}
int main() {
// 创建计时器线程
_beginthread(timerThread, 0, NULL);
// 其他操作
// 结束计时器的运行
flag = true;
// 其他操作
return 0;
}
```
在主线程中设置 flag 为 true,即可结束计时器的运行。注意,要使用互斥锁或原子操作等机制来保证 flag 的线程安全性。
阅读全文