你的位置:首页 > ASP.net教程

[ASP.net教程]BlockingCollection使用

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

 

结果: