tpl-dataflow

    6热度

    2回答

    我的场景是,我有一个BufferBlock<Stream>接收来自外部来源的Stream,比方说文件系统或某个FTP服务器。这些文件Stream将传递到另一个块并进行处理。 唯一的问题是这些文件中的一部分是压缩的,我想在中间添加一个Block,它将在必要时解压缩文件,并为其每个条目创建多个输出Stream。 但是我不想使用TransformBlockMany,因为这意味着我必须完全收到ZIP St

    4热度

    1回答

    我有大量需要执行的任务(〜1000)。我使用的是四核处理器,所以我想同时处理4个任务。 为了给你一个出发点,下​​面是一些示例代码。 class Program { public class LongOperation { private static readonly Random RandomNumberGenerator = new Random(0);

    2热度

    1回答

    TPL数据流库我的应用程序非常有用的。我有大约10块,我认为计数会增加。 当我准备我的应用程序的原型时,我很困惑,因为我明白我得到了功能设计。 void BIG_WORKFLOW_METHOD() { ... var block1 = new TransformBlock<string, string>(...); var block2 = new Transfor

    1热度

    1回答

    目前我正在处理管道数据流,其中除阶段1以外的每个阶段都是运行消费者和生产者的async。我有物品“流经”我的管道,这些参考物品。在第3阶段,我想创建一个循环并缓冲满足特殊条件(Stage Loop)的所有对象。 如果新对象进入(第3阶段),同时还有其他对象正在缓冲(Stage Loop),我想检查它们是否与它们的引用项目匹配,如果是,则将它们发布到Stage Loop的BufferBlock。 问

    2热度

    1回答

    我正在试验TPL Dataflow,然后将其移植到我的生产代码中。 生产代码是一个经典的生产者/消费者系统 - 生产者生产消息(与金融领域相关),消费者处理这些消息。 我感兴趣的是,如果在某一点上生产者产生的速度远远超过消费者能够处理它的速度(系统将会爆炸,或者会发生什么),环境将会保持多么稳定&更重要的是什么在这些情况下做。 所以试图有类似的简单的应用程序,我想出了以下内容。 var buffe

    -1热度

    2回答

    有一个服务器任务,它使用TPL Dataflow发送消息到许多客户端任务。 客户端连接到服务器随机 客户端可以将消息发送到服务器和客户端可以从服务器接收消息 服务器使用BufferBlock<string>要发送消息给客户,当客户端连接到服务器,它从这个BufferBlock<string>收到消息。 但是这个BufferBlock<string>只能缓存一条消息,而客户端不能从服务器请求多条消息

    3热度

    1回答

    我有我相信可以使用TPL数据流是可以解决的具体问题。我只是新来这个,所以需要你的帮助加快我的理解。我的代码是这样的目前: ,其中处理1,进程2,Process3每个都是任务。对象通过阻塞收集从一个块传递到另一个块。我想这样做: 我读到TransformBlock,ActionBlock和BatchBlock..Can你帮助我如何使用这些类来实现上面的设计。

    2热度

    2回答

    例如跑步,我有三个块: Buffer -> Transform -> Action 我正在从请求到缓冲器块带来的数据的WebAPI服务。如何创建这样一个将永久运行的管道,而无需在Action块中调用Completion()并停止整个管道。

    2热度

    1回答

    我需要实现可以从多个线程填充请求的队列。当这个队列变得大于1000个完成的请求时,这个请求应该被存储到数据库中。这是我的实现: public class RequestQueue { private static BlockingCollection<VerificationRequest> _queue = new BlockingCollection<VerificationReq

    3热度

    1回答

    我一直在寻找的.NET TPL的“数据流”库的某些部分出于好奇的执行情况和我遇到下面的代码片段来了: private void GetHeadTailPositions(out Segment head, out Segment tail, out int headLow, out int tailHigh) { head = _head; tail