线程等待的问题
程序A里,有一个对象B,我在一个B类里开了个线程,然后在程序A里要等待B线程返回时,再进行动作。请问应该如何实现,谢谢。
[解决办法]
这个问题好办啊,用任何一个中线程同步工具都可以实现啊。你这个要求就是工作线程与界面现程的同步。
两个线程共享同一个互斥量,开启B类中的线程后,持有互斥量,直到线程执行完毕正确返回,释放互斥量。在此期间,程序A的界面线程就不停的检查互斥量的状态。
不过,这样做,你不怕界面Hang死吗?
[解决办法]
使用同步信号量!
不过,你这样有必要要开线程吗?开线程目的是为了并发。
[解决办法]
界面死在这里,指的是没有任何反应么? 可刷新否?
[解决办法]
线程可传任意多的参数,如果你了解C/C++参数传递机制的话。实在不行可设立全局变量。传入一个进度的信息,内部持有其指针/引用。不需要做互斥,开一个线程就行了。
[解决办法]
《Windows核心编程》