什么是长时间暂停exe的最佳方法

what is the best way to long pause an exe

本文关键字:最佳 方法 exe 暂停 长时间 什么      更新时间:2023-10-16

我用c++做了一个程序来更改系统的密码,我想每两个小时运行一次,然后我在c++中有两个选择,一个是Sleep(ms),另一个是使用最近的线程库this_thread::sleep_for(2h)[ 2h using std::chrono_literals]

我一直在怀疑,长时间暂停exe是否会按照我们想要的方式工作,还有比我提到的更好的方式吗?

我还计划将我的exe作为windows服务。

还有比我提到的更好的方法吗?

是的。

我建议你不要在暂停程序。只需做这件事,然后退出。

将日程安排部分提取到一个单独的程序中。您甚至不需要编写这个调度程序,因为它已经存在于大多数操作系统中。

如果您有一些任务必须在长时间等待的情况下定期运行,那么您应该使用一个程序或脚本来执行任务并退出,以及一个调度程序来处理等待。还有一些问题需要考虑,例如:

  • 如果错过了计划时间(例如,由于重新启动),你需要启动任务吗
  • 如果完成任务所需的时间比等待时间长,是否允许同时运行多个任务

您要做的是自己实现一个调度程序。如果这是你想要的,那么sleep是一个posix函数,而chrono::thread::sleep_for是跨平台的,所以最好使用第二个。

然而,通常不建议实现调度器,而且要实现简单的调度器。