进程间定时数据传递,但是发现偶尔3分钟失去数据通信的问题。

yaokaei 2012-07-29 10:06:57
进程间定时5S一次数据传递,但是发现偶尔3分钟失去数据通信,后来又恢复正常。

我的作法:
我在winEvent(MSG *msg, long *result)里面接收另外一个进程的传递过来的定时数据,
我发现在失去数据通信的时候,我点击了画面可能导致了主线程堵塞的现象,从而进程间通信也中断了,

请问经验者,应该怎样让数据接收放在单独的一个线程去做,从而和主线程分开,或者有没有其他更好的办法呢?

if ( msg->message == WM_COPYDATA)
{
COPYDATASTRUCT * p = (COPYDATASTRUCT*)(msg->lParam);
if(p->dwData == 0x01)
{
................................
}

return true;
}
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
一介布衣萧萧 2012-07-30
  • 打赏
  • 举报
回复
可以考虑把UI上有延时操作的放到线程中去处理,这样就不会阻塞主线程。毕竟你的消息接收都是在主线程中的。
91program 2012-07-29
  • 打赏
  • 举报
回复
点击界面,有什么需要长时间的处理吗?

如果有,将这种长时间的处理放在另一个线程中处理,处理过程中加上必要的Sleep,让主窗体和其它线程可以得到运行。
yaokaei 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

点击界面,有什么需要长时间的处理吗?

如果有,将这种长时间的处理放在另一个线程中处理,处理过程中加上必要的Sleep,让主窗体和其它线程可以得到运行。
[/Quote]
是要考虑,但是如何让进程间的接口单独开设一个线程呢?

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧