一尘不染

创建一个完成的任务

c#

我正在实现一个方法,Task<Result> StartSomeTask()并且碰巧在调用该方法之前已经知道了结果。如何创建已经完成的Task

这是我目前正在做的:

private readonly Result theResult = new Result();

public override Task<Result> StartSomeTask()
{
    var task = new Task<Result>(() => theResult);
    task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
    return task;
}

有更好的解决方案吗?


阅读 278

收藏
2020-05-19

共1个答案

一尘不染

private readonly Result theResult = new Result();

public override Task<Result> StartSomeTask()
{
    var taskSource = new TaskCompletionSource<Result>();
    taskSource.SetResult(theResult);
    return taskSource.Task;
}
2020-05-19