Bu erBlock C# with Example



Bu erBlock C# with Example

(FIFO Queue: The data that comes in is the data that goes out) 
In short, BufferBlock provides an unbounded or bounded buffer for storing instances of T. 
You can “post ” instances of T to the block, which cause the data being posted to be stored in a first-in-first-out (FIFO) order 
by the block. 
You can “receive ” from the block, which allows you to synchronously or asynchronously obtain instances of T 
previously stored or available in the future (again, FIFO). 
 

Asynchronous Producer/Consumer with a Throttled Producer 
// Hand-off through a bounded BufferBlock 
private static BufferBlock _Buffer = new BufferBlock( 
new DataflowBlockOptions { BoundedCapacity = 10 }); 
// Producer 
private static async void Producer() 
{ 
while(true) 
{ 
await _Buffer.SendAsync(Produce()); 
} 
} 
// Consumer 
private static async Task Consumer() 
{ 
while(true) 
{ 
Process(await _Buffer.ReceiveAsync()); 
} 
} 
// Start the Producer and Consumer 
private static async Task Run() 
{ 
await Task.WhenAll(Producer(), Consumer()); 
} 
Introduction to TPL Dataflow by Stephen Toub 

0 Comment's

Comment Form

Submit Comment