c# - 获取任务并将其传递的方法是否应该等待它?

标签 c# async-await c#-5.0

我有以下两种方法

public async Task<bool> DoSomething(CancellationToken.token) 
{
    //do something async
}

//overload with None token 
public /*async*/ Task<bool> DoSomething()
{
    return /*await*/ DoSomething(CancellationToken.None);
}

是否应该使用 async/await 关键字标记第二种方法?

最佳答案

它不需要 - 如果您在第二种方法中使用 await/async,您将增加额外的开销,在这种情况下什么也做不了。

DoSomething(CancellationToken) 中的异步工作已经为您提供了正确的异步处理和编码回现有上下文。

归根结底,asyncawait 实际上只是语言功能,可以轻松创建和编写 Task。如果您已经有一个非常好的 Task 可以返回,则无需使用额外的语言支持来将其解包并重新包装到新的 Task 中。

关于c# - 获取任务并将其传递的方法是否应该等待它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15444271/

相关文章:

c# - LINQ 查询查找字符串包含任何字母的列

c# - 如何从 C# 中的 MethodCallExpression 调用方法

c# - 如何使用 TaskCompletionSource.SetException 保留等待行为?

c# - 我可以让我的程序集引用另一个程序集的任何版本吗?

c# - 如何修改自动生成的 Entity Framework DbContext 属性?

c# - 如何在第 n 次出现时拆分字符串?

javascript - 循环等待 API 响应

c# - 异步作为方法结果管理器?

json - ServiceStack - 在映射到 DTO 之前验证 json 数据

winforms - 在运行时调用多线程 DLL