标题:QT如何实现异步调用
作者:brighteyes
日期:2011-11-10 09:41
内容:
请教:现在做一个与硬件通讯的项目,应用程序通过自定义的通讯协议与硬件通讯,一般情况下是通过SIGNAL/SLOT的方式实现数据的收发,下发一条指令,硬件返回数据后发出一个SIGNAL,通过SLOT处理接受的数据。
体现出来的效果是:在按钮事件中发出一条指令,对应一个SLOT进行数据的处理。随着指令种类的增加,SIGNAL/SLOT的种类也会越来越多。
事实上我希望的效果是:在按钮事件中发出一条指令并对收到的数据进行处理。我觉得这样处理符合实际情况,而且程序简洁。但问题是界面在等待数据返回的过程中会出现死掉的现象。因此我想请教一下QT里面能不能实现函数运行到一点,等待数据返回后继续执行,在等待的时间内函数是非阻塞的。
不知道我的描述是否清晰,还请会的人多指教。
#1 回 楼主(brighteyes) 的帖子 [wxj120bw 11-10 10:42]
我有些问题 硬件返回数据中不含有指令 对硬件返回数据处理slot函数连接那个信号signal
#2 [brighteyes 11-10 15:38]
已解决。设置一个定时器,一个时间段之内线程响应其他事件,这样不会造成线程阻塞,时间到继续执行函数。
QElapsedTimer t;t.start();while(t.elapsed()
#3 回 1楼(wxj120bw) 的帖子 [brighteyes 11-10 15:39]
不好意思,对你的问题不太理解。我的问题也解决。不使用SIGNAL/SLOT的方式。
#4 回 3楼(brighteyes) 的帖子 [wxj120bw 11-10 19:09]
既然问题解决了 那我也没问题了
#5 回 brighteyes 的帖子 [lwei24 07-09 15:59]
brighteyes:不好意思,对你的问题不太理解。我的问题也解决。不使用SIGNAL/SLOT的方式。 (2011-11-10 15:39)
楼主,请问你当时是怎么解决的?方便分享一下方法吗?