第一次在C++中使用線程。我一直在尋找使用boost,這對我來說非常困惑。基本上所有我想要做的是:增強異步主線程回調
- 創建一個工作線程異步做一些工作。在工作完成時繼續主線程。
- 工作線程完成後,用一些在主線程上下文中執行的結果觸發一個回調函數。
因此,類似於C#中的線程處理。
似乎沒有任何支持2.使用io_service和異步函數,然後使用io_service上的run()似乎阻止主線程。所以不是非常異步。
我使用boost ::未來按照這裏的例子嘗試:Using boost::future with "then" continuations
這裏的「然後」的延續是在一個單獨的線程中完成的,而不是主線程,所以不是我後。有什麼辦法可以改變它嗎?使用boost :: launch :: deferred和wait()使得調用同步,所以這也沒有幫助。與在boost :: future構造中使用get()一樣。
似乎唯一的選擇是創建一個互斥鎖共享事件隊列,並且只是在主線程中持續輪詢它以獲取新數據?