摘要: 这一章主要介绍了System.Collections.Concurrent下的几个类。ConcurrentQueue并发队列。完全无锁,使用CAS(compare-and-swap)比较并交换和自旋重试来实现线程安全。//加入队尾public void Enqueue(T item)//尝试删除队头,并将元素通过out返回,返回值表示是否操作成功public bool TryDequeue(out T result)//尝试获取队头,通过out返回元素,返回值为代表是否操作成功public bool TryPeek(out T result)ConcurrentStack并发栈,完全无锁,使用 阅读全文
posted @ 2013-08-03 16:22 atskyline 阅读(4686) 评论(0) 推荐(0) 编辑
摘要: Task的使用var t1 = new Task(() => GenerateAESKeys());var t2 = new Task(() => GenerateMD5Hashes());// Start the taskst1.Start();t2.Start();// Wait for all the tasks to finishTask.WaitAll(t1, t2);等待超时// Wait for all the tasks to finish with a 1 second timeoutif (!Task.WaitAll(new Task[] { t1, t2 }, 阅读全文
posted @ 2013-08-03 12:54 atskyline 阅读(814) 评论(0) 推荐(0) 编辑
摘要: Parallel.Invoke并行执行多个方法,只有在所有方法都执行后才会返回static void Main(string[] args){Parallel.Invoke(() => ConvertEllipses(),() => ConvertRectangles(),() => ConvertLines(),() => ConvertText());System.Console.ReadLine();}static void ConvertEllipses(){System.Console.WriteLine("Ellipses converted.&q 阅读全文
posted @ 2013-08-03 10:24 atskyline 阅读(2099) 评论(0) 推荐(1) 编辑