问题标签 [tpl-dataflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4463 浏览

.net - 在哪里可以找到 4.0 的 TPL 数据流版本?

我正在寻找 .NET 4.0 版本的 TPL 数据流库。

Nuget 包有一个 4.0 版本的库,但它似乎面向 .NET 4.5。

我发现了对 4.0 版本的各种引用,例如在这个论坛中:

http://social.msdn.microsoft.com/Forums/en-US/tpldataflow/thread/6206c714-6dee-4d17-a880-26d0c137a167

但是提到的链接只是将我重定向到库的 Nuget 页面。

有谁知道我在哪里可以找到针对 .NET 4.0 的工作版本?

0 投票
1 回答
747 浏览

c# - WCF 双工内的 TPL 数据流块

我是SO的新作家,请多多包涵。

我有一个带有双工服务合同的 WCF 服务。该服务合同有一个操作联系人,假设进行长时间的数据处理。我被限制将并发数据处理的数量限制为最多 3 个。我的问题是,在数据处理之后,我需要返回到相同的服务实例上下文,所以我回调我的发起程序端点,传递数据处理结果。我需要提一下,由于各种原因,我受限于 TPL 数据流和 WCF 双工。

这是我到目前为止所写内容的演示

在控制台库中,我模拟 WCF 调用

这是假设为 WCF 服务的内容

操作合同并不是真正需要异步的,但我需要 OutputAvailableAsync 通知。

这是一个好方法还是对我的场景有更好的解决方案?

提前致谢。

0 投票
2 回答
998 浏览

c# - C++ 的 C# TPL 数据流是否有替代方案?

我最近发布了一个关于使用委托来模拟连接对象的问题,其中我收到了关于使用 TPL DataFlow 库非常容易和干净地为我的应用程序开发解决方案的一个很好的答案。

问题是我被困在 .NET 3.5 或 C# 下。我想我可能已经能够升级到 .NET 4.5,但在这个阶段我还不能。据我所知,我无法将 Dataflow 库重新定位到 .NET 3.5,所以我的下一个解决方案是寻找与 TPL Dataflow 类似的 C++ 替代方案——这不是最好的方案,但我可以编译将 C++ 代码转换为 DLL 并将其导入我们的 C# 应用程序。

总结一下我对这个问题的 C++ 库的要求:

  • 我需要能够将复杂网络中的节点连接在一起,并在它们之间传递资源单元。随着时间的推移,其中一些将产生有限数量的资源。其他人会以特定的速度消耗它。
0 投票
1 回答
373 浏览

.net - TPL Dataflow:这两个代码片段有什么区别?

我正在研究TPL 数据流Belwo 是来自官方文档Stephen Toub的 2 段代码片段。TPL 数据流简介 (TPLDataflow.docx)。但我并没有完全理解它们之间的区别。

顺便说一句,这两个代码片段是文档中的示例,用于演示目的。它们并不完整。

  1. 顺序和同步下载图像

    /li>
  2. 顺序和异步下载图像

    /li>
0 投票
1 回答
879 浏览

c# - 任务数据流,可以从完成状态更改数据块吗?

我想知道是否可以改变数据块的完成状态?

例如,我var block = new BufferBlock<int>();用 . 标记了一个数据块block.Complete()。该块链接到其他数据块。我想知道我是否可以block通过将其完成状态更改回原来的 !complete 状态来再次运行。

如果这是不可能的,我如何执行多次运行,包括完成,而不必 a) 取消链接所有块,b) 重新实例化所有块,以及 c) 再次重新链接所有块?

有什么想法可以简化运行数据流周期的任务,包括完成链中的每个块,而无需重新创建整个框架?

谢谢

0 投票
3 回答
7924 浏览

task-parallel-library - I/O 性能 - 异步 vs TPL vs Dataflow vs RX

我有一段 C# 5.0 代码可以生成大量的网络和磁盘 I/O。我需要并行运行此代码的多个副本。以下哪项技术可能会给我带来最佳性能:

  • 带有等待的异步方法

  • 直接使用 TPL 中的 Task

  • TPL 数据流 nuget

  • 反应式扩展

我不太擅长这种并行的东西,但是如果使用较低的杠杆,比如 Thread,可以给我更好的性能,我也会考虑这一点。

0 投票
5 回答
11805 浏览

c# - 我做错了什么还是无法并行提取 zip 文件?

我创建了这个来测试并行提取:

以及以下用于测试的单元测试:

MaxDegreeOfParallelism = 1 时,一切正常,但 2 时则不行。

更新 2

这是我自己的并行操作,它也不起作用:) 请记住在 continueWith 中处理异常。

这是异步版本:

更新 3

在handle.Exception 中会抛出以下异常。

必须找出 ZipFile 是否是线程安全的。

0 投票
2 回答
412 浏览

.net - .NET - Block main thread until there are any available threads

I have a process where my main thread is reading a file and splitting it into parts. Those parts then require further processing. I would like to utilize any available threads so that the downstream processing is utilizing as much CPU (or as many cores) as possible. I don't want to create an excessive backlog from the main thread, so I need the main thread to wait to add to the queue until there is another available thread.

I see many articles like VB.NET 4.0: Looking to execute multiple threads, but wait until all threads are completed before resuming, but they are waiting for all threads to complete, whereas I just need any threads to be available

Is this something I can tackle with the Task Parallel Library, or should I be manually creating threads and monitoring a threadpool?

0 投票
2 回答
463 浏览

c# - TPL Dataflow, notification when data block received first item

I wonder whether it is possible to subscribe to a one-time notification when the first item is received in the input buffer or processed in a data block. I am aware I can set a flag within the data block but that would create overhead as it would run check the flag on each new item. My data block processes several million items thus this flag adds unnecessary overhead.

Is there a better way to be notified on the first incoming item?

0 投票
2 回答
177 浏览

vb.net - “sendasync”不是“System.Threading.Tasks.DataFlow.BufferBlock”的成员

我正在尝试在“如何:将消息写入数据流块并从数据流块读取消息”底部运行 Microsoft TPL DataFlow 完整示例,但代码不会按原样编译。我已经在 NuGet 中删除了 TPL DataFlow 包(v 4.5.9),并且引用似乎正在工作。但是SendAsync 方法似乎无效。我需要做一些特别的事情,因为它是一种扩展方法吗?

我得到的只是

“sendasync”不是“System.Threading.Tasks.DataFlow.BufferBlock(Of Integer)”的成员

代码截图:

代码截图

参考:

在此处输入图像描述

NuGet 包:

在此处输入图像描述