然而你又想用Task提高程序效率。
注意:如果你们的开发工具已经可以用上Async,Await,就别读下去了,没意义。
原则上可以这样:
public static int doSomething(string a,string b,string c,string d,string e)
{
//do something
return 1;
}
然后调用:
Task<int> t3 = new Task<int>(() => doSomething("","","","",""));
t1.Start();
最后在任意需要返回值的地方:
int a = t3.Result;
另外,我有个简单点的办法:
设计一个方法(用来做代理):
public static Task<T> delegateTask<T>(Func<T> ac)
{
Task<T> t1 = new Task<T>(() =>
{
T iTest = ac();
return iTest;
});
t1.Start();
return t1;
}
然后用这个代理调用:
Task<int> t3 = delegateTask<int>(() => doSomething("", "", "", "", ""));
int a = t3.Result;
也就稍微少写了一点点代码。
网友评论