我需要使用 Boost 将字符串从一个进程发送到另一个进程。实际上,我正在尝试创建一个firebreath插件(firebreath 在其后端使用 Boost),它应该能够将消息发送到另一个 firebreath 插件。我认为应该是某种事件机制;当发送者插件发送字符串时,应该在接收者插件中触发一个事件。最好的方法是什么?
问问题
891 次
1 回答
2
有些人建议使用 boost::ipc,其他人则警告 boost::ipc 在 Windows 上不能很好地工作。我自己没有尝试过 boost::ipc,所以我不知道。一种选择是使用 boost::asio 创建一个本地套接字(localhost 上的套接字)并启动一个线程在一侧进行侦听;Windows 上的另一个选项是使用命名管道。我过去使用命名管道取得了很大的成功。
要记住的主要事情是,您不能阻止 FireBreath 中的主线程——如果您这样做,它将锁定浏览器进程,或者最好的情况是会弹出一个对话框,询问用户是否要杀死您的插件。相反,创建第二个线程来处理侦听器,然后在您的页面需要知道的事情发生时调用 FireEvent。
于 2011-04-13T15:11:12.363 回答