什么是非异步异步方法的命名约定?

时间:2017-01-09 23:13:22

标签: c# .net multithreading asynchronous task-parallel-library

众所周知,在C#中,async方法应该用后缀命名" Async" (例如ReadAsyncCreateAsync)。

但在许多情况下,异步方法中不需要async/await,例如:

public async Task<string> DoSomethingAsync()
{
    return await GetAsync();
}

可以改写为:

public Task<string> DoSomethingAsync()
{
    return GetAsync();
}

我的问题是:

  1. 对于async/await完全可选的上述情况,哪个版本更正确?保持async/await或直接返回Task

  2. 如果第二个版本更好(直接返回Task),它是否通常仍然以后缀命名&#34; Async&#34; (即DoSomethingAsync)或不(即DoSomething)?

1 个答案:

答案 0 :(得分:6)

  

对于上面的情况,async / await是完全可选的,哪个版本更正确?保持async / await或直接返回任务?

我更喜欢直接退回Task,但我写了an entire blog post on when this is appropriate and not

  

如果第二个版本更好(直接返回一个任务),它是否通常仍然以后缀“Async”(即DoSomethingAsync)命名(即DoSomethingAsync)?(

是。 Async后缀表示“返回等待”。