在asyc方法中完成返回任务

时间:2016-06-08 20:07:16

标签: c# multithreading

我有一个必须异步的方法,因为它调用的是异步方法:

    public async Task TransitionToPendingApproval(Guid id)
    {
        // Update status to pending approval
        var cimp = Repository.GetById(id);
        ChangeCimpStatus(cimp, Dom.CimpStatus.PendingApproval);
        await EmailPendingApprovalAsync(cimp).ConfigureAwait(true);
        return System.Threading.Tasks.Task.CompletedTask;
    }

我只想返回任务已完成但我收到此错误:

Since 'CimpProvider.TransitionToPendingApproval(Guid)' is an async method that returns 'Task', a return keyword must not be followed by an object expression. Did you intend to return 'Task<T>'?

我做错了什么以及如何解决?

1 个答案:

答案 0 :(得分:2)

因为您返回的是Task而不是Task< T>,所以您无需返回任何内容。只需完全删除最后一个return语句。

请参阅https://msdn.microsoft.com/en-us/library/mt674893.aspx了解相关信息。(第39节“任务返回类型&#39;”)