ActionBlock C# with Example



ActionBlock C# with Example

(foreach) 
This class can be thought of logically as a buffer for data to be processed combined with tasks for processing that 
data, with the “dataflow block ” managing both. In its most basic usage, we can instantiate an ActionBlock and “pos” t
data to it; the delegate provided at the ActionBlock ’s construction will be executed asynchronously for every piece 
of data posted. 
Synchronous Computation 
var ab = new ActionBlock(i => 
{ 
Compute(i); 
}); 
… 
ab.Post(1); 
ab.Post(2); 
ab.Post(3); 
Throttling Asynchronous Downloads to at most 5 concurrently 
var downloader = new ActionBlock(async url => 
{ 
byte [] imageData = await DownloadAsync(url); 
Process(imageData); 
}, new DataflowBlockOptions { MaxDegreeOfParallelism = 5 }); 
downloader.Post("http://website.com/path/to/images"); 
downloader.Post("http://another-website.com/path/to/images"); 
Introduction to TPL Dataflow by Stephen Toub 

0 Comment's

Comment Form

Submit Comment