gpt4 book ai didi

c# - 如何从 Task.Factory.StartNew<> 获取结果?

转载 作者:太空狗 更新时间:2023-10-29 21:02:02 24 4
gpt4 key购买 nike

如果我可以并行运行多个 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;

最佳答案

你可以让多个任务同时运行,然后像这样等待所有任务完成:

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 allTasks = new Task[]{task, task1};

Task.WaitAll(allTasks);

var result = task.Result;
var result1 = task1.Result;

如果你只想等待第一个完成,你可以使用 Task.WaitAny 例如。

关于c# - 如何从 Task.Factory.StartNew<> 获取结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16332859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com