cost 265 ms
使用 boost::asio::use_future 提升 asio:async_read()

[英]Boost asio:async_read() using boost::asio::use_future

使用未來調用asio::async_read()時,有沒有辦法在發生boost:asio::error::eof異常時獲取傳輸的字節數? 似乎在很多情況下,即使對等方斷開連接,人們也希望傳輸數據。 例如: 上面的代碼示例代表了我們的問題。 它旨在支持第 3 方庫。 庫需要一個阻塞調用。 正在開發的 ...

為什么調用從異步檢索的 future.get() 會導致意外的 output 訂單

[英]Why calling future.get() retrieved from async leads to unexpected output order

考慮以下代碼: 產生以下 output: 如您所見, generate() function 中的 output 具有正確的(從 1 到 10)順序。 但是當迭代結果向量時,每次運行我都會得到不同的順序。 為什么會發生這種情況,如何同步此類代碼? ...

如果不調用 `std::future::get()`,下面的代碼片段中是否存在任何潛在問題?

[英]Is there any potential problem in the code snippet below if `std::future::get()` would not be called?

如果不調用std::future::get() ,下面的代碼片段中是否存在任何潛在問題? 我做了幾個測試。 似乎上述代碼在不調用std::future::get()的情況下運行良好,即使std::async需要很長時間才能完成其工作。 真是出乎我的意料。 ...

如果 std::promise 存在於 C++ 中,如何判斷 std::future?

[英]How to tell std::future if std::promise exist in C++?

我創建了一個std::packaged_task ,將其推送到std::list並將其std::future返回給用戶,如下所示: 在另一個線程中,我們可以隨時清除任務列表: 但是用戶仍然可以調用 std::future : 獲取異常錯誤,因為 std::promise 已被銷毀: 我可以使用異常 ...

C++ 不能為 lambda 中移動捕獲的 promise 調用 set_value?

[英]C++ cannot call set_value for promise move-captured in a lambda?

我正在嘗試編寫一個返回未來的相當簡單的方法。 lambda 設定未來。 這是一個最小的例子。 實際上,lambda 可能會在不同的線程中調用,等等。#include <future> std::future<std::error_code> do_something() ...

當 wait_for() 狀態准備好並且 wait() 返回時 std::future get() 阻塞

[英]std::future get() blocks when wait_for() status is ready and wait() returns

我希望下面的代碼每次都能通過所有斷言並成功完成。 目前似乎std::future.get()每次都在兩個分支中阻塞。 盡管wait_for()顯示狀態為ready並且wait()立即返回,但它永遠阻塞。 gcc 7.4.0 和 clang 6.0.0 的結果相同。 ...

如何在共享資源作為參數的for循環中使用std future和異步線程?

[英]How to use std future and async with threading in a for loop with a shared resource as param?

我在線程實踐項目中遇到了一個實現問題。 我知道我想要實現什么,但我不知道如何實現。 我是 std::future 和 std::async 主題的新手,所以我什至不確定是否可以按照我想象的方式實現。 我有一個具有此功能的 NuclearPP class(它應該是 staright forwad)。 ...

為什么 std::future 從 std::packaged_task 和 std::async 返回的不同?

[英]Why std::future is different returned from std::packaged_task and std::async?

我才知道,之所以future從返回std::async有一些特殊的共享狀態,通過它wait on returned future發生在未來的析構函數。 但是當我們使用std::pakaged_task ,它的未來不會表現出相同的行為。 要完成打包任務,您必須從packaged_task對future ...

創建后,我可以將 std::sync(std::launch::deferred 策略更改為 std::launch::async 嗎?

[英]Can I change a std::sync(std::launch::deferred policy to std::launch::async, once created?

我處於一個場景中,我有很多 I/O 綁定任務,非常適合在后台運行。 但是,我無法同時啟動所有這些。 雖然我可以使用其他技巧(例如計數信號量),但我想知道我是否可以在每次期貨完成時將已經創建的 std::async(deferred)(好吧,未來,現在)策略更改為async (好吧,有點,但我希望你 ...

測量 std::future 對象可用之前的時間

[英]Measure time until an std::future object becomes available

我正在嘗試測量返回std::future對象的 API 調用的持續時間。 我目前的方法是這樣的: 但是,我不確定std::future::wait_for 。 cppreference.com指出: 由於調度或資源爭用延遲,此函數可能會阻塞比 timeout_duration 更長的時 ...

std :: promise內部是否使用std :: condition_variable來通知關聯的std :: future?

[英]Does std::promise internally use std::condition_variable to notify the associated std::future?

我的問題是std::promise通過使用std::condition_variable來通知關聯的std::future嗎? 我搜索std::promise的源代碼並找到了這個網站 。 但我沒有看到std::promise在其成員數據中有std::condition_variable ...

有沒有一種方法可以為任何函數編寫通用代碼,使其可以(異步)執行並從線程池中獲得返回值?

[英]Is there a way to write generic code for any function such that it can be executed (asyncronously) and a return value obtained from a thread pool?

我一直在嘗試創建線程池類(用於個人實驗/使用/娛樂)。 我找到了一種方法,可以使用參數包(在下面的代碼中看到)來接受具有任何參數/返回類型的任何函數,並將這些函數綁定到std :: function。 這沒有問題。 問題是我想嘗試使成員函數從正在執行的作業中檢索返回的值。 在執行此操作時 ...

如何使C ++ std :: future返回值適應C#System.Threading.Tasks.Task?

[英]How to adapt a C++ std::future return value to a C# System.Threading.Tasks.Task?

我正在包裝一個從.NET使用的C ++庫。 C ++ API中有返回std::future函數。 我想讓.NET代理類返回System.Threading.Tasks.Task 。 我想在C ++端添加一個替換方法,除了方法參數之外還會接受一個函數指針。 然后我可以啟動一個新線程(例 ...

std :: promise set_exception兩次導致分段錯誤

[英]std::promise set_exception twice cause Segmentation fault

假設我有一個調用不穩定的第三方服務的方法,所以我為這個調用添加一個10秒的超時。 這是我嘗試過的: 當call_third_party_service沒有響應時(假設它在30秒后拋出異常表示超時), status == std::future_status::timeout在等待10秒 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM