我想知道如何解决这个问题。
我注意到CreateThread()
在这段代码中效果不佳:
DWORD threadFunc1(LPVOID lParam)
{
int cur = (int)lParam
while(1)
{
//Job1...
//Reason
break;
}
Start(cur + 1);
Sleep(100);
}
void Start(int startNum)
{
....
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)threadFunc1, &startNum, 0, &dwThreadId);
...
}
void btnClicking()
{
Start(0);
}
在这段代码中,有一个线程由它创建并在线程结束时Start()
调用。Start()
第二个创建的线程不起作用。我认为第一个线程消失了,第二个线程被破坏了。
解决这个问题的最佳方法是什么?
操作系统:Win 7 64bit Ultimate。工具:Visual Studio 2008。