现象:
创建一个子线程,在子线程中不断发送信号给主线程,在主线程的对应的槽函数中调用QApplication::processEvents()。
例:
CMyThread继承于QThread类,在run函数中间隔10ms发送一次信号
Widget在主线程中,sltDosomething槽连接sigDoSomething信号。在槽函数中只调用QApplication::processEvents()。
当子线程run函数休眠时间足够小时(本次为10ms)程序崩溃。使用VS调试可见错误。
原因:
不详,猜可能是时间足够小导致槽函数递归。
解决办法:
连接信号时最后一个参数选择Qt::BlockingQueuedConnection。
发表评论