Sam*_*gan 13 c++ multithreading
我正在创建一个线程类来封装windows线程方法.我正在尝试创建一个方法,使应用程序在退出应用程序之前等待线程完成.如果我使用while循环和布尔标志,它可以工作,但显然它会刺激我的CPU使用,它只是不理想.
你会用什么方法等待一个线程的完成?(我不是真的在这里寻找代码,只是需要研究的领域)
Bri*_*ndy 30
使用CreateThread获取线程句柄后,将其传递给Win32 API WaitForSingleObject:
WaitForSingleObject(threadhandle, INFINITE);
Run Code Online (Sandbox Code Playgroud)
如果你不使用CreateThread(因为你使用另一个线程包),或者你的线程总是活着...
然后你仍然可以使用WaitForSingleObject.只需使用Win32 API CreateEvent创建一个事件,然后等待使用WaitForSingleObject设置事件.在线程结束时使用SetEvent设置事件,您可以使用ResetEvent重置事件.
大多数线程包虽然有自己的方式来等待一个线程.就像在boost :: thread中一样,你可以使用.join()或boost :: condition.