当前位置: 代码迷 >> QT开发 >> Qt 怎么以多线程处理linux系统信号
  详细解决方案

Qt 怎么以多线程处理linux系统信号

热度:54   发布时间:2016-04-25 03:16:51.0
Qt 怎样以多线程处理linux系统信号?
我想在Qt程序中处理来自驱动或者终端发来的信号,比如SIGIO, SIGUSR1, SIGUSR2信号.
我使用signal函数安装信号处理函数, 能够收到这些信号, 但是都是在主线程中处理的, 
在处理函数中使用QThread::currentThreadID()可以看到与主线程一样, 即使在QThread子类的run函数中安装信号处理函数也是一样.

所以请教大家, 在Qt中, 怎样以多线程的方式来处理信号?
谢谢 !!!
------解决方案--------------------
基本上,这种问题都是QThread用法错误造成的。不过你没给代码,不做评论
------解决方案--------------------
其实很多信号都是发给进程的,不管你在哪里安装信号处理器都一样,都是在主线程(main() 所在线程)中调用信号处理器的。