第一次在C++中使用线程。我一直在寻找使用boost,这对我来说非常困惑。基本上所有我想要做的是:增强异步主线程回调
- 创建一个工作线程异步做一些工作。在工作完成时继续主线程。
- 工作线程完成后,用一些在主线程上下文中执行的结果触发一个回调函数。
因此,类似于C#中的线程处理。
似乎没有任何支持2.使用io_service和异步函数,然后使用io_service上的run()似乎阻止主线程。所以不是非常异步。
我使用boost ::未来按照这里的例子尝试:Using boost::future with "then" continuations
这里的“然后”的延续是在一个单独的线程中完成的,而不是主线程,所以不是我后。有什么办法可以改变它吗?使用boost :: launch :: deferred和wait()使得调用同步,所以这也没有帮助。与在boost :: future构造中使用get()一样。
似乎唯一的选择是创建一个互斥锁共享事件队列,并且只是在主线程中持续轮询它以获取新数据?