gpt4 book ai didi

c# - 为什么 "async Task"方法的返回值不是任务

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:18 25 4
gpt4 key购买 nike

为什么会这样?返回类型不是任务。

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/

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