В длинном списке IDataflowBlock в библиотеке .Net, если я хочу ограничить выполнение всей коллекции блоков TimeSpan (скажем, 5 секунд), достаточно ли этого, если Я передаю один CancellationToken в конструкторе последнего блока (через DataflowBlockOptions конечно)?
Я думаю, что вопрос стоит сам по себе, но для некоторого контекста, например:
var token = new CancellationToken(5000);
var options = new DataflowBlockOptions{ CancellationToken = token };
// DataflowBlockOptions not used although possible through overloading
var block1 = new Bufferblock<int>(/*options*/);
// DataflowBlockOptions not used although possible through overloading
var block2 = new TransformBlock<int,int>(i => i + 1/*, options*/);
// Options used here to limit total time to 5 seconds.
var block3 = new ActionBlock<int>(i => Console.WriteLine(i), options);
block1.LinkTo(block2);
block2.LinkTo(block3);
block1.Post(...)
await block3.Completion;
Еще один способ задать вопрос: есть ли здесь какая-то выгода, чтобы раскомментировать /* options */
в приведенном выше фрагменте.