【发布时间】:2015-06-09 19:47:54
【问题描述】:
当你像这样使用任务类时,我已经看到了:
Task<Test> task2 = Task<Test>.Factory.StartNew(() =>
{
string s = ".NET";
double d = 4.0;
for (int i = 0; i < 3; i++) { }
return new Test { Name = s, Number = d };
});
您可以使用Test tt = task2.Result; 从Task 获取结果。但是,线程不在后台运行,我的整个程序都在等待它停止并将数据发回,那我为什么还要使用它呢?我可以简单地使用一个函数。
那么,为了获得结果,我需要运行另一个任务来运行此任务吗? (或另一个线程,没关系)。
有没有什么方法可以不等待而仍然得到结果?
【问题讨论】:
-
Result是一个阻塞调用。您可能想研究延续或使用 async\await。
标签: c# .net multithreading asynchronous