Postmessage和消息循环在不同的线程中
postmessage and message loop in different thread
我正在阅读其他人的代码,他们的代码正在工作。我只是对postmessage和他们使用的消息循环感到有点困惑
#define MESSAGE XXX //some number
BEGIN_MESSAGE_MAP(myClass, CDialog)
//...
ON_THREAD_MESSAGE(...)
END_MESSAGE_MAP()
... myClass::funcA(...)
{
static HANDLE t = createThread(...., funcB,....)
.....
postmessage(MESSAGE)
}
... myClass::funcB(...)
{
....
while(...)
{
TranslateMessage(&msg);
dispatchMessage(&msg);
}
}
代码看起来像这样,但做了一些修改
根据MSDN当_In_opt_ HWND PostMessage的HWND设置为null
该函数的行为类似于调用PostThreadMessage,其中dwthreaddid参数设置为当前线程的标识符。
这让我很困惑。似乎主线程创建的线程实际上收到了msg?有人能解释一下吗?
顺便说一句,我是mfc的新手,这是我在这里的第一个帖子,如果我误解了什么,让我知道
您似乎正在调用CWnd::PostMessage函数,而不是API PostMessage函数。因此,调用使用其HWND成员向myClass对话框发送消息,并且该消息将在发出调用的同一线程中接收。
相关文章:
- 线程消息传递或更好:在"大师班"中访问其他班级的成员
- 将类成员函数作为线程调用到另一个类成员函数时发出警告消息
- C++ Poco - 如何向特定线程发送通知/消息?
- 如何从其他线程 winapi 获取消息
- 为什么分离线程没有得到输出消息
- QTcpSocket:消息不是从另一个线程发送的
- 多线程套接字编程服务器仅从 1 个客户端线程获取消息
- 视觉C++跨线程发送消息
- 从 Visual C++ 2010 中的单独线程调用消息框
- IPC Unix 消息队列线程安全吗?
- boost消息队列线程安全和进程安全吗?
- 为什么消息框不阻止线程?
- 回复:等待完整消息(可变大小消息,线程)
- 在状态栏上显示来自不同线程中回调的消息
- 增强ASIO和线程之间的消息传递
- 从内存转储中查找线程消息队列中的消息
- 来自另一个线程的 SendMessage() 调用是否将消息发布到消息队列
- 消息蜂鸣线程阻塞
- 多线程C++消息传递
- 线程消息之间的优先级