关于线程的弱弱问题:如何等待线程返回结果?我在一个函数中开了几个线程来进行费时的操作,
然后等待这几个线程返回结果,全都得到结果后才退出函数,但是我是用下面这种方法等待bool finish = 判断是否全部线程都已经返回结果;
while(!finish)
{
Sleep(500);
finish = 判断是否全部线程都已经返回结果;
}
退出;但是线程不是马上就返回结果,这时程序程序很容易就会“没有响应”,用什么方法等待线程返回结果才能避免这种现象呢?
然后等待这几个线程返回结果,全都得到结果后才退出函数,但是我是用下面这种方法等待bool finish = 判断是否全部线程都已经返回结果;
while(!finish)
{
Sleep(500);
finish = 判断是否全部线程都已经返回结果;
}
退出;但是线程不是马上就返回结果,这时程序程序很容易就会“没有响应”,用什么方法等待线程返回结果才能避免这种现象呢?
正如上面所说的用WaitForMultipleObjects(...)这个函数等待指定的线程结束
想知道线程的返回结果可以用GetExitCodeThread(...)取得
第二步:在你的线程的最后加一句SetEvent(hThreadExitEvent)。
第三步:你的主线程使用WaitForSingleObject函数等待该事件的激发。
说明:在你等待结束的线程结束之前会激发该事件,而你的主线程会在接收到该事件激发的消息后才会执行后面的代码,在等到这之前,主线程会堵塞在这里,什么也不做。