【发布时间】:2013-05-02 07:47:13
【问题描述】:
如果我可以并行运行多个Task.Factory.StartNew 语句,请告诉我。
类似的东西
var task = Task.Factory.StartNew<List<AccessDetails>>(() => this.GetAccessListOfMirror(mirrorId, null,"DEV"));
var task1 = Task.Factory.StartNew<List<AccessDetails>>(() => this.GetAccessListOfMirror(mirrorId, null, "PROD"));
如果是这样。如何获取语句的输出并使用它。
我以前使用过如下语句。应用程序将等待直到我从线程获得输出。
var task = Task.Factory.StartNew<List<AccessDetails>>(() => this.GetAccessListOfMirror(mirrorId, null,"DEV"));
return (List<AccessDetails>)task.ContinueWith(tsk => accdet = task.Result.ToList()).Result;
【问题讨论】:
-
不确定我的问题是否正确,但如果您想等到执行完成,您可以使用 Task.Wait() 然后获取 Task.Result。
-
@Mecaveli Task.Result 阻塞直到完成,如果您正在处理单个任务,则无需先调用 Task.Wait()。
-
感谢您的更正。他正在处理多项任务 - 本来就是 Task.WaitAll。
标签: c# asp.net multithreading