【问题标题】:C++ : Running a background task all the time on machineC++:一直在机器上运行后台任务
【发布时间】:2014-04-11 11:16:58
【问题描述】:

我想制作一个 MFC 应用程序,让线程/进程一直在后台运行,以跟踪硬盘大小等信息。

当硬盘大小超过 90% 时,它会显示一个警告对话框(也是同一应用程序的 MFC 对话框)。

我不知道该怎么做。

我尝试了windows服务选项,但对我来说似乎不太可靠,因为大多数时候服务没有成功安装,或者如果安装了它也没有成功启动。

我还需要哪些其他选择来实现它?

感谢任何帮助。

【问题讨论】:

标签: c++ multithreading mfc windows-services


【解决方案1】:
  1. 创建一个工作线程,持续监控磁盘空间。
  2. 主线程中创建用户定义的消息并为其提供处理程序
  3. 当磁盘空间超过 90% 时,发布消息(发布您创建的用户定义消息)
  4. 来自用户定义消息“显示警告消息”的主线程处理程序

注意:服务不适合此任务,因为它们不喜欢用户交互。

【讨论】:

  • 可以设置一个标志,允许服务与桌面交互,比如显示一个消息框。
  • 哦!我不知道。我指定的是书呆子的东西。如果你已经这样做了,我会选择 U。感谢您指定 Joachim Pileborg。
  • @Sivaraman 所以即使在应用程序退出和系统重新启动之间,工作线程也会继续在后台运行?
  • 不,工作线程仅在应用程序运行时运行。如果您的应用被添加到启动文件夹,它将在系统启动时启动。
  • @Joachim Pileborg,允许服务与桌面交互的日子在 Windows Vista 中已经结束。请参阅此处接受的答案:superuser.com/questions/415204/…
猜你喜欢
  • 2017-02-26
  • 2010-10-02
  • 1970-01-01
  • 2021-07-31
  • 2016-04-21
  • 1970-01-01
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多