gpt4 book ai didi

.net - 如何从线程任务返回数据

转载 作者:行者123 更新时间:2023-12-04 19:19:44 25 4
gpt4 key购买 nike

我目前正在尝试使用 .net 任务来运行长方法。我需要能够从任务中返回数据。每次在新任务中运行它时,我想多次调用此方法。但是,使用 Task.Result 属性返回数据会使每个任务等待完成。

例如,目前如果做这样的事情:

public void RunTask()
{
var task = Task.Factory.StartNew(() =>
{
return LongMethod()
});

Console.WriteLine(task.Result);
}

并多次调用它,每次花费不同的时间,等待每个任务完成后再执行下一个任务。

是否可以多次调用我的 RunTask 方法,每次返回结果而不必等待每个任务按顺序完成?

最佳答案

是的。当您调用 task.ResultTask<T> ,它将阻塞,直到出现结果。

如果你想让这个完全异步,你可以改变你的方法来返回 Task<T>直接,并在调用者级别“阻止”,或使用延续:

public void RunTask()
{
var task = Task.Factory.StartNew(() =>
{
return LongMethod()
});

// This task will run after the first has completed...
task.ContinueWith( t =>
{
Console.WriteLine(t.Result);
});
}

关于.net - 如何从线程任务返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5380489/

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