.NET4.0有一个新增的Task功能可以执行多线程操作,并按需返回指定类型的值。使用非常方便,比之前的线程池、回调等方法好用得多。本文简单介绍这一功能的使用,供初学者参考。
引用命名空间
using System.Threading.Tasks
启动执行并返回结果值
var a = Task<string>.Factory.StartNew(()=> { //这里是执行方法 string a = "a"; return a; }; //或者以下也可以启动 var a = Task.Factory.StartNew(()=> { return "a"; }; //等待执行完成,若非要等待所有方法全部执行完成后再进行后续操作,也可以省略 Task.WaitAll(a); //获得返回值,上例中输出为 "a"。 MessageBox.Show(a.Result);
如果有连续两个任务,且第二个任务必须要等第一个任务执行完成后才能启动,则可以
var b = a.ContinueWith(lastTask=> { return "b" + lastTask.Result; //lastTask是任意命名的参数,即代表上一个任务 }); //输出值为 "ba" MessageBox.Show(b.Result);
是不是很简单呢?本文仅简单介绍其使用,当然Task远不止这一点应用,有兴趣的同学可以进一步学习。