编写控制台程序需要注意的地方,一旦主线程结束,所有子线程会跟着结束
int main(int argc, char *argv[])
{
gServer.InitInstance();
_beginthreadex(NULL, NULL, Server::ServerProcXp, &gServer, NULL, NULL);
_beginthreadex(NULL, NULL, Server::ServerProcLinux, &gServer, NULL, NULL);
SetConsoleCtrlHandler( (PHANDLER_ROUTINE) HandlerRoutine, TRUE );
return 0;
}
例如上面这个例子
解决办法
system("PAUSE");
让主程序暂停
探讨了在控制台程序中主线程结束时如何避免导致所有子线程被强制关闭的问题,并提供了一个简单的解决办法。
1万+

被折叠的 条评论
为什么被折叠?



