好的,我有点困惑。以下代码是有效的:
HANDLE CreateSideThread()
{
DWORD dwGenericThread;
HANDLE hThread1 = CreateThread(NULL, 0, CallBackFunc, NULL, 0, &dwGenericThread);
return hThread1;
}
int main()
{
HANDLE Thread1;
Thread1 = CreateSideThread();
WaitForSingleObject(hThread1, INFINITE);
SomeOtherFunction();
return 0;
}
程序还有其他功能,但您已经了解了。它基本上创建一个新的线程并执行CallBackFunc中的任何内容(这是一个无限循环,检查db状态)。如果我删除WaitForSingleObject(),那么程序甚至不会尝试一次CallBackFunc,而是执行SomeOtherFunction()。那么线程的意义是什么?我的意思是,我在这里感到困惑。我试图做的是调用具有数据库状态检查的线程,并保持该线程运行,同时继续调用其他函数。我做错了什么?请发布一个示例片段。谢谢
SomeOtherFunction()
是否会休眠?还是一个占用了100% CPU的硬循环?如果是后者,那么你的辅助线程可能没有足够的时间片来快速运行。 - Greg Hewgill