1

最初のブロックがプロデューサーブロックになるパイプラインを構築しようとしています。Enum オブジェクトを取得し、これに従って大量のデータを生成します。このデータは、到着するとパイプラインの次のステップに自動的に送信されます。

これを行う方法はありますか?または、カスタムブロックを作成する必要がありますか?

4

1 に答える 1

1

最も簡単な方法は、実際にアイテムを生成するaBufferBlockと組み合わせて使用​​することだと思います。Task何かのようなもの:

public ISourceBlock<Foo> CreateProducer()
{
    var block = new BufferBlock<Foo>(); // add options if necessary

    Task.Run(() =>
    {
        try
        {
            while (whatever)
            {
                Foo foo = …;
                block.Post(foo); // or await SendAsync() if block is bounded
            }
        }
        catch (Exception ex)
        {
            ((IDataflowBlock)block).Fault(ex);
        }
    });

    return block;
}
于 2013-09-12T13:48:31.090 に答える