1. 程式人生 > >c#Task多核程式設計

c#Task多核程式設計

之所以寫這篇文章是受到這篇文章的啟發,一老外寫的,很無私,

原文地址是: http://www.codeproject.com/Articles/362996/Multi-core-programming-using-Task-Parallel-Library

以前也老聽到過多核程式設計,有幸看了上面的這篇文章,想把自己的一些理解寫下來

1、為什麼要有多核程式設計的技術那,無非兩點,多核cpu的出現和經常出現一個cpu告訴執行,另一個cpu閒著,

cpu不應該是這種使用情況


應該是這種


2、C#(.net )對多核程式設計的支援,從.net 4.0 開始支援多核程式設計了,使用的namespace是System.Threading和System.Threading.Tasks

3、多核程式設計實現的程式比多thread實現的程式,效能要高,執行快,thread切換上下文很耗效能,尤其現在的計算機幾乎都是多核的

4、多核和執行緒池的比較,當需要等待多個執行緒完成向下執行,執行緒池很麻煩,task則很簡單

5、c#多核程式設計的簡單使用,其實主要是Task類使用

Task task = Task.Factory.StartNew(delegate);//委託型別可以使用lambda表示式,即開啟了一個任務

Task myTask =new Task(param);//另一種構造task的方法,委託引數中,可以給task傳參

task.start();//啟動任務

task.wait(fisishTask);//等待一個任務的完成,再執行

task.Result;//獲取task的執行結果

task.ContinueWith(anotherTask);//task結束後,執行anotherTask

Task.wait(task1,..);//等待多個任務的完成,否則一直阻塞

。。。。。。。。。就到這兒吧,用到task的其他功能,只要到msdn上查一下Task的使用就ok了。。。。。。。