BlockingCollection是一個線程安全的生產者-消費者集合。
代碼

public class BlockingTest
{
BlockingCollection<int> bc = new BlockingCollection<int>();
public BlockingTest()
{
Task.Factory.StartNew(ProduceTask);
Task.Factory.StartNew(ConsumeTask);
}
private void ProduceTask()
{
foreach (var item in Enumerable.Range(1, 100))
{
Console.WriteLine(string.Format("+++++++++++++: {0}", item));
bc.Add(item);
}
bc.CompleteAdding();
}
private void ConsumeTask()
{
foreach(var item in bc.GetConsumingEnumerable())
{
Console.WriteLine(string.Format("---------------: {0}", item));
}
}
}
View Code
結果:
