系统/软件详情:Qt 版本 4.7.4
Linux 内核:2.6.31(为 IMX25 构建的自定义内核)
外围设备:图形 LCD (64x128) Quectel (M 12) GPRS 模块 热敏打印机
数据库:Sqlite3
我是初学者,在 Qt 或 Linux 编程方面没有太多经验。我开发了一个应用程序,用户手动输入一些数据并将数据保存在 sqlite 数据库中。所以我想做的是,在一定时间后,假设 90 秒后,数据库中的数据应该使用 GPRS 传输到服务器。
所以我使用 Qt 的信号和槽机制来进行定时数据传输。我创建了一个每 90 秒触发一次的插槽,当插槽被触发时,我正在创建/启动一个 POSIX 线程,该线程假设将数据传输到服务器。
因此,该线程所做的是启动“pppd”,一旦“pppd”启动,它就会查询数据库中的数据并将数据发送到服务器。一旦数据传输完成,我就会杀死“pppd”。该功能工作正常。
但问题是“pppd”需要时间才能启动,所以我不得不引入一些延迟。即 12 秒的睡眠是为了让 pppd 成功启动。但是由于睡眠被阻塞,它使主程序/线程无响应,直到启动“pppd”(即它暂停/停止所有活动,如打印等)。随着“pppd”的启动,主线程再次变得响应。
因此,请建议我一些解决方案,以便在“pppd”启动时保持主线程响应,或者如果有任何其他替代方案,请建议我。如果我的方法有什么问题,也请指导我..
提前致谢。如果我没有遵循你的标准,我很抱歉..