加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 由于后台线程上的事件而在ui线程上执行方法

发布时间:2020-12-16 06:46:41 所属栏目:百科 来源:网络整理
导读:我有一个后台线程轮询服务器.当有数据时,我想处理UI线程上的数据.如果我存储主窗口的hwnd. 我怎样才能获得一个特定的方法static void DataHandler(void * data)在UI线程上执行? 我认为创建一个传递hwnd和函数指针的计时器将起作用.但有更好的方法吗?我可以
我有一个后台线程轮询服务器.当有数据时,我想处理UI线程上的数据.如果我存储主窗口的hwnd.

我怎样才能获得一个特定的方法static void DataHandler(void * data)在UI线程上执行?

我认为创建一个传递hwnd和函数指针的计时器将起作用.但有更好的方法吗?我可以使用PostMessage以某种方式调用datahandler.

另外,我不是在编写UI代码,因此我无法修改消息循环中的任何内容.

解决方法

你可以做的一件事 – 使用一个线程间信号对象可能就像一个布尔标志一样简单.当数据出现在服务器轮询线程上时,您可以发信号通知该标志.您可以在UI线程的消息循环中检查此标志.或者,您可以向UI线程发送自定义窗口消息.

现在我重新阅读了您的问题 – 由于您无法更改UI代码,因此这种方法无效.您可以使用WIN32 API添加自己的自定义消息挂钩函数来解决此问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读