【发布时间】:2009-09-16 06:10:59
【问题描述】:
我可以通过 PostMessage 和 AfxBeginThread 实现相同的功能(异步调用) 那么 PostMessage 和 AfxBeginThread 的区别在哪里呢?
【问题讨论】:
标签: c++ multithreading mfc visual-c++
我可以通过 PostMessage 和 AfxBeginThread 实现相同的功能(异步调用) 那么 PostMessage 和 AfxBeginThread 的区别在哪里呢?
【问题讨论】:
标签: c++ multithreading mfc visual-c++
AfxBeginThread 在您的函数中启动一个全新的线程。
PostMessage 正在使用进程的主消息循环,因此如果使用 PostMessage 进行长时间操作,则会冻结消息循环,导致 GUI 无响应,直到您完成操作。
【讨论】:
发布消息是 Windows 编程中一种被严重低估的线程同步方法。我几乎只使用它而不是其他线程通信机制。但我认为这不是你要问的。
我会问你的处理是否足够长以保证它自己的线程。如果答案是否定的,那么请保持简单,并在同一个线程中执行。
【讨论】: