正确的方法从工作线程到win32中的主线程进行通信

时间:2013-07-30 05:55:00

标签: c++ oop winapi

在OOP中工作时,从工作线程到win32主线程的正确/最佳通信方式是什么?

我的工作线程在循环中运行,对于某些事件,包括线程结束时,它需要告诉主线程,主线程做某些事情作为响应。

目前我正在使用来自工作线程的 WM_APP 消息与主线程进行通信。 但这看起来并不整洁。

3 个答案:

答案 0 :(得分:1)

如果您对通过Windows消息进行通信感到满意,这是完全合理和精细的。它具有不需要同步的优点。可以通过线程安全对象(通常需要锁定),共享内存,套接字等来完成其他通信。在线程部分检查众所周知的C ++库,以寻找可能性。

通过Windows进行通信消息是最简单的方法之一。这本身就是一个不容低估的价值,如果你不需要平台独立性或一种比Windows消息更具可能性的通信形式 - 坚持下去。

答案 1 :(得分:0)

我假设主线程是GUI线程。您可以查看类似主题的this SO thread

答案 2 :(得分:0)

基本上没有将工作线程传递给主线程的标准方法。你只关注你的程序是否工作正常或不是这样。关于线程,后台线程或者你可以说工作线程基本上用于多任务目的意味着你想要做一些非常重的事情,从盘中读取大文件然后你可以使用线程。

现在使用线程的一个非常重要的事情是同步你的线程如何同步线程有很多与资源分配有关的问题,所有这一切首先要了解你在工作时如何为线程分配资源。

有关详情,请阅读Using Worker Threads