为什么会这样?返回类型不是任务。
public async Task<WorkItem> CreateWorkItem(WorkItem workItem)
{
WorkItem item = new WorkItem();
workItem.Description = "something";
item = await Task.FromResult(item);
return item;
}
为什么这不起作用?返回类型是任务。
public async Task<WorkItem> CreateWorkItem(WorkItem workItem)
{
WorkItem item = new WorkItem();
workItem.Description = "something";
Task<WorkItem> result = await Task.FromResult(item);
return result;
}
最佳答案
行 item = await Task.FromResult(item) 不正确,它实际上应该是:
return Task.FromResult(item);
由于该方法被标记为异步,您返回任务,然后调用 CreateWorkItem() 的任何人都会使用 await 执行此操作,因此调用者应如下所示:
WorkItem item = await CreateWorkItem(myWorkItem);
或者:
Task<WorkItem> itemTask = CreateWorkItem(myWorkItem);
item = await itemTask;
关于c# - 为什么 "async Task"方法的返回值不是任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165376/