c++ - 在 C++ 中执行主程序时,如何在后台检查是否已经过了一分钟?

标签 c++ windows background-process createthread

我创建了一个在屏幕上显示当前时间的程序。我现在要做的是每分钟更新一次时间。

dateAndTime now; //created an object of a custom class dateAndTime

cout << "\n\t\t\t\t\t\t" << now.hour() << ':' << now.minute() << endl;
cout << "CASH MANAGER" << "\n";
cout << "1. Add cash" << "\n";
cout << "2. Withdraw cash" << "\n\n";

int ch;
cout << "Enter a number 1 or 2: ";
cin >> ch;

假设时间是通过以下过程更新的:

if (time(0) == now.epochTime() + 1)
    now.setTime(time(0));

现在,我要做的是将时间显示为 now.hour() << ':' << now.minute();应每分钟更新一次,而不会延迟或中断主程序。

这意味着如果用户在提示后几分钟内没有提供任何输入,则时间应在每分钟后自动更新,并且在整个过程中程序始终等待用户的输入(即主程序照常运行)。有什么办法吗?我知道可能没有跨平台技术可以做到这一点。所以我只想为 windows os 做这个.

编辑:更新后不需要恢复当前光标位置或用户编写的任何文本(尚未输入)。

最佳答案

您可以使用alarm() 函数,它会在时间到期时发送信号SIGALRM

应用程序只需要为该信号提供一个信号处理程序。

关于c++ - 在 C++ 中执行主程序时,如何在后台检查是否已经过了一分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307855/

相关文章:

c++ - DrawText 在 Win7 x64 上的性能不佳

windows - 批处理文件 : How to capture output of a function in a variable?

ios - 我的 NSXMLParser 在后台不工作

c++ - Ncurses 删除窗口,当我不想要它

c++ - lambdas 中的模板参数列表中的 auto 是标准的一部分吗?

c++ - 双指针在使用 new 时不调用对象构造函数

java - SWT GC : Color not correctly drawn on Windows

ios - 在后台模式下实现的 Core Motion 加速度计的奇怪行为

php - 即使从 a/c 注销,提交表单后 php 脚本将如何在后台运行

c++ - 模仿C中静态对象的构造函数