C# 在asyc方法中返回任务已完成
我有一个方法必须是异步的,因为它正在调用异步方法:C# 在asyc方法中返回任务已完成,c#,multithreading,C#,Multithreading,我有一个方法必须是异步的,因为它正在调用异步方法: public async Task TransitionToPendingApproval(Guid id) { // Update status to pending approval var cimp = Repository.GetById(id); ChangeCimpStatus(cimp, Dom.CimpStatus.PendingApproval);
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>'?
由于“CimpProvider.TransitionPendingApproval(Guid)”是一个返回“Task”的异步方法,因此返回关键字后面不能跟有对象表达式。您是否打算返回“任务”?
我做错了什么以及如何修复它?因为您返回的是
任务而不是任务
,所以不需要返回任何内容。只需完全删除最后一个return语句
请参阅以获取解释。(“任务返回类型”部分)因为您返回的是任务而不是任务
,所以不需要返回任何内容。只需完全删除最后一个return语句
请参阅以获取解释。(“任务返回类型”部分)在您的案例中不返回任何内容(完全删除最后一行)。好的,您可以解释为什么吗?当您将方法标记为“async”时,它会自动包装在任务中,因此它已经(默认情况下)返回任务。如果它返回任务-您需要提供T(返回某物)。如果它只返回Task——这类似于return void方法。在您的情况下只返回nothing(完全删除最后一行)。好的,您能解释为什么吗?当您将方法标记为“async”时,它会自动包装在Task中,所以它已经(默认情况下)返回Task。如果它返回任务-您需要提供T(返回某物)。如果它返回的是just Task-这类似于return void方法。谢谢,你能澄清“任务而不是任务”吗?对不起,它没有包含通用部分,用空格更新了我的答案是,wait
可以是方法中的最后一句话。谢谢,你能澄清“任务而不是任务”吗?对不起,它没有包含通用部分,使用空格键更新了我的答案Yep,wait
可以是方法中的最后一条语句。