引用第4楼tthheedhz于2012-05-25 15:42发表的 :
有可能是主线程获知子线程结束,然后发送一个finished()信号呢?
不过这个可能性不大。估计应该还是子线程发送的。
我正在设计一个例子,来证明是子线程发送的。
多线程是相当复杂的一个东西,通过一个两个例子是无法证实“肯定是什么”的,可以证明“可以是什么”
Qt Manual对此没有明确说明,因为在哪个线程发送是不定的。比如,在Windows下,线程函数大致如下:
void threadFunc()
{
emit started();
run();
emit finished();
}
如果正常执行的话,执行完run()函数,就会在该线程内发射finished信号。如果线程非正常结束了呢?次线程已经不存在了。那么在杀死该线程的线程内发射finished信号也是可以理解的。