为什么Sleep()
停止所有创建的线程?我想创建一个线程,但是将Main
函数保持睡眠状态,直到线程完成。
bool _finished = false;
void testcount(void *p){
int i = 0;
while(i<=30){
i++;
std::cout<<i<<"\n";
Sleep(1000);
}
_finished = true;
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved){
HANDLE test = NULL;
test = CreateThread(NULL,NULL,(LpthREAD_START_ROUTINE)testcount,NULL);
if(test)
std::cout<<"test thread created";
CloseHandle(test);
while(!_finished)
Sleep(1000);
return true;
}
我现在正在这样尝试,但是程序从未完成,因为while
与Sleep
一起停止了线程。线程未完成时,我不想在Main
上返回任何内容。有解决办法吗?