【问题标题】:Intra-process communication WinRT (messages replacement)进程内通信 WinRT(消息替换)
【发布时间】:2012-10-08 06:43:56
【问题描述】:

我正在使用 Win32 的 WinRT 端口,但我遇到了线程和消息 (vc++11) 的问题。我只能在 WinRT 中使用线程池或 std::thread ...所以我实现了 std::thread,它似乎可以正常工作,但我该如何在它们之间进行通信线程?是否有其他选择(如 PostMessage() 等)?在 Android 端口中,我们可以使用管道,但在 winrt 中没有任何内容:(

谢谢

【问题讨论】:

  • 您混淆了线程和进程的概念。管道仅用于进程之间的通信,在 WinRT 中是不允许的。线程只需要一个线程安全队列。
  • @HansPassant:不是这样。 PostMessage() 用于两者。并且线程安全队列是不够的,你仍然需要一些东西来通知线程(当然,答案)。
  • PostMessage() 只是一种使用线程安全队列的方法。 Windows 消息队列。相当受限,最重要的是,在 WinRT 中不可用。

标签: c++ visual-c++ windows-8 windows-runtime ipc


【解决方案1】:

std::conditional_variablestd::mutex 和纯 std::deque 应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 2021-07-24
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 2011-08-27
    相关资源
    最近更新 更多