我最近在Using Delegates to simulate connected objects上发布了一个问题,我在使用TPL DataFlow库时非常轻松,干净地开发了我的应用程序解决方案。
问题是我被困在.NET 3.5或C#下。我以为我可能已经能够升级到.NET 4.5,在这个阶段我不能。至于我已经能够确定我不能将Dataflow库重新定位到.NET 3.5,所以我的下一个解决方案是在类似于TPL Dataflow的情况下寻找C ++替代方案 - 它不是最好的方案,但我可以编译DLL的C ++代码并将其导入我们的C#应用程序。
总结我对这个问题的C ++库的要求:
答案 0 :(得分:2)
您可以考虑使用mono's version of TPL Dataflow并自行编译.Net 3.5。
我认为在尝试编译代码时遇到的最大问题是它很大程度上依赖于TPL,这通常不适用于.Net 3.5。但是it seems a backported version is available in older versions of Rx,所以使用它可以工作。
(另外,部分版本的TDF是由我编写的,我没有收到任何关于它的任何反馈,因此很可能确定存在错误。)
答案 1 :(得分:0)
幸运的是,有人似乎正在创建 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);
});