我需要它占用尽可能少的处理器时间,并且绝对不需要创建实际窗口。我只需要将这个过程挂在后台。
答案 0 :(得分:2)
此请求最适合Windows服务概念。 example。{{3}}。您可以实现许多不同的方式,C / C ++与Qt或不/ C#。创建服务而不是隐藏控制台的优点是程序可通过标准Windows服务接口进行管理(un)注册/启动/停止/等。同时使用管理UI和控制台实用程序。
让应用程序消耗更少的CPU更加精致,取决于您的应用程序的功能,但更简单的答案是,不要运行紧密的循环并让它等待,直到需要处理某些东西。要覆盖的内容太多,例如线程等,但我们不知道你的程序做了什么。
答案 1 :(得分:0)
Windows应用程序始终在后台运行,而不必与GUI窗口一起运行,因此这就是您要求的。 如果您已有控制台应用程序,则只需执行以下操作:
这样:
#include <Windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
//your program should replace this loop:
while(1){
Sleep(100); //because of the the empty loop, I don't want to waste CPU...
}
return 0;
}
wWinMain
作为main
,如果您需要解析pCmdLine所需的参数。WinMain
和PSTR pCmdLine
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nCmdShow)