gpt4 book ai didi

c++ - 向同一进程中的另一个线程发出信号

转载 作者:行者123 更新时间:2023-11-28 02:24:21 24 4
gpt4 key购买 nike

我有一个处理特定数据并在 UI 中显示的应用程序。

最初我只有一个线程,即主进程,负责执行工作,即检索要处理的数据、处理数据,然后更新 UI。数据驻留在另一台服务器上。

但是,应用程序的要求发生了变化,需要从服务器检索和处理的数据比以前想象的要多得多。这会产生性能问题,因为必须检索、处理数据,然后 UI 必须弄清楚它应该放在哪里

UI 是基于 CListCtrl 的 MFC 控件。

为了解决这个问题,我将处理拆分为两个线程,一个获取数据并处理数据,另一个用于显示数据,即 GUI。

我需要一些方法来向 UI 线程发送信号,表明数据已被提取和处理。线程是使用 CreateThread 创建的。向另一个线程发出它可以完成自己的工作的信号的最佳方式是什么?

最佳答案

我建议如下:当您的单独线程必须通知 GUI 某事时,您应该向包含控件的窗口调用 PostMessage。

消息参数应该是用户定义的消息,例如您定义的内容

#define WM_MYMESSAGE (WM_USER + 1)

另外两个参数(LPARAM 和 LPARAM)将包含您需要传递给 GUI 的数据。因此,在 CreateThread 中,您需要传递有关将接收消息的窗口的一些信息(如果您使用 MFC,则为 CWnd 指针,否则为 HWND 句柄)。

然后你需要在你的窗口中处理这个消息(参见关于 ON_COMMAND 和类似宏的引用)

关于c++ - 向同一进程中的另一个线程发出信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31238365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com