class Program { static void Main() { var b1 = new BlockingCollection<int>(); ThreadPool.QueueUserWorkItem(ConSumeItems, b1); for (int i = 0; i < 5; i++) { Console.WriteLine("producing: " + i); b1.Add(i); } //告诉消费线程(可能有多个这样的线程),不会再集合中添加更多的项了 b1.CompleteAdding(); Console.ReadKey(); } private static void ConSumeItems(object o) { var b1 = (BlockingCollection<int>)o; //阻塞,直到出现一个数据项。出现后就处理它 foreach (var item in b1.GetConsumingEnumerable()) { Console.WriteLine("consuming :{0}", item); } //集合空白,没有更多的项进入其中 Console.WriteLine("All items have been consumed"); } }
30.7 并发集合类
猜你喜欢
转载自www.cnblogs.com/kikyoqiang/p/10229862.html
今日推荐
周排行