如何等待一个线程结束
现在我做一个图像处理系统。图像处理是这样的:
1.先开一个线程进行某一项图像处理(输入一个文件,生成一个处理后的图像文件)。
2.待处理结束后把处理后的图像文件显示在客户区。
我的想法是这样的:
1.CreateThread开线程
2.通过OpenThread获取进程句柄
3.WaitforsingleObject来等待线程结束。
现在的问题是我还是不知道线程什么时候结束。因为WaitForSingleObject的用法
DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds);参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件还是无信号状态则返回WAIT_TIMEOUT。
我不能设置等待时间,因为处理大图像和处理小图像的时间是不一样的。如果参数dwMilliseconds为INFINITE时函数将直到相应时间事件变成有信号状态才返回,否则就一直等待下去,直到WaitForSingleObject有返回直才执行后面的代码。这里的相应时间事件变成有信号状态才返回呢?可以理解为线程结束吗?