.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远不止这一点应用,有兴趣的同学可以进一步学习。