2

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

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

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

4

3 回答 3

1

如果您对通过 Windows 消息进行通信感到满意,那么这完全合理且没问题。它的好处是不需要同步。额外的通信可以通过线程安全对象(主要需要锁定)、共享内存、套接字等来完成。在它们的线程部分检查众所周知的 C++ 库是否有可能。

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

于 2013-07-30T07:03:56.463 回答
0

基本上没有将工作线程与主线程通信的标准方式。您只需专注于您的程序是否正常工作。关于线程,后台线程或者你可以说工作线程基本上用于多任务目的意味着你想做一些非常繁重的事情,比如从磁盘读取大文件然后你可以使用线程。

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

有关更多信息,您可以阅读使用工作线程

于 2013-07-30T07:02:55.130 回答
0

我假设主线程将是 GUI 线程。您可以查看有关类似主题的这个 SO 线程。

于 2013-07-30T06:24:19.323 回答