我有以下两种方法
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)
中的异步工作已经为您提供了正确的异步处理和编码回现有上下文。
归根结底,async
和 await
实际上只是语言功能,可以轻松创建和编写 Task
。如果您已经有一个非常好的 Task
可以返回,则无需使用额外的语言支持来将其解包并重新包装到新的 Task
中。
关于c# - 获取任务并将其传递的方法是否应该等待它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15444271/