Amm*_*ain 2 qt multithreading signals-slots
我在处理信号和插槽的方式上有一个基本的Qt问题.我对框架很新,所以请原谅我,如果这听起来很愚蠢.我想知道我是否有某些信号连接到某些插槽.
signal1() ---> slot1(){ cout <<"a"; }
signal2() ---> slot2(){ cout <<"b"; }
signal3() ---> slot3(){ cout <<"c"; }
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我打电话
emit signal1();
emit signal2();
emit signal3();
Run Code Online (Sandbox Code Playgroud)
Qt是否保证在屏幕上打印出"abc",换句话说,顺序处理插槽?或者它会产生一个单独的线程来执行每个插槽?谢谢!
默认情况下:
1)如果在接收对象具有亲和力的线程中发出信号,则立即执行连接到该信号的槽,就像正常的函数调用一样.emit所有插槽返回后,将在语句后执行代码.
2)否则,当控制返回到接收者线程的事件循环时,调用该槽.emit关键字后面的代码将立即继续,并且稍后将在接收者的线程中执行这些插槽.
有关连接类型的更多信息,请访问:http://qt-project.org/doc/qt-4.8/threads-qobject.html#signals-and-slots-across-threads