c#Task多核编程

来源:互联网 发布:如何才能申请淘宝达人 编辑:程序博客网 时间:2024/06/08 10:31

之所以写这篇文章是受到这篇文章的启发,一老外写的,很无私,

原文地址是: 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了。。。。。。。




0 0