[英]Is there an alternative to C# TPL Dataflow for C++?
我最近發布了一個關於使用委托模擬連接對象的問題,在那里我收到了關於使用 TPL DataFlow 庫非常輕松和干凈地為我的應用程序開發解決方案的很好的答案。
問題是我被困在 .NET 3.5 或 C# 下。 我想我可能已經能夠升級到 .NET 4.5,但在這個階段我不能。 據我所知,我無法將 Dataflow 庫重新定位到 .NET 3.5,所以我的下一個解決方案是尋找與 TPL Dataflow 類似的 C++ 替代方案 - 這不是最好的方案,但我可以編譯將 C++ 代碼轉換為 DLL 並將其導入到我們的 C# 應用程序中。
總結一下我對這個問題的 C++ 庫的要求:
您可能會考慮使用單聲道版本的 TPL Dataflow並為 .Net 3.5 自行編譯。
我認為在嘗試編譯該代碼時您會遇到的最大問題是它嚴重依賴 TPL,而 TPL 通常不適用於 .Net 3.5。 但似乎在舊版本的 Rx中可以使用向后移植的版本,因此使用它可以工作。
(此外,TDF 的單聲道版本的部分內容是我編寫的,我幾乎沒有收到任何有關它的反饋,因此可以肯定其中存在錯誤。)
幸運的是,有人似乎正在創建 C# TPL 數據流的 C++ 等價物: https : //github.com/renestein/Rstein.AsyncCpp#Flat-Dataflow
片段:
auto transform1 = DataFlowAsyncFactory::CreateTransformBlock<int, string>([](const int& item)-> Tasks::Task<string>
{
auto message = "int: " + to_string(item) + "\n";
cout << message;
//await async operation returning standard shared_future.
co_await GetCompletedSharedFuture();
co_return to_string(item);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.