1. 程式人生 > >30.7 併發集合類

30.7 併發集合類

 

    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"); } }