C# · 12月 29, 2021

c# – 应该得到Task并将其传递的方法等待吗?

我有两种方法 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关键字进行标记?

解决方法 它不需要 – 如果在第二种方法中使用等待/异步,那么在这种情况下,您将添加额外的开销,这不会完成任何操作.

DoSomething(CancellationToken)中的异步工作已经为您提供了适当的异步处理和封送回现有的上下文.

在一天结束时,异步等待真正只是语言功能,可以轻松创建和撰写任务.如果您已经有一个完美的任务返回,则不需要使用额外的语言支持来展开并将其重新包装成新的任务.