【发布时间】:2017-05-22 13:22:38
【问题描述】:
我们都知道 Async Await 之所以成为可能是因为状态机已经到位,这让我想到了一个关于以下用例的问题:
Public async Task<string> GetTotal(string p1)
{
Return await GetTotal(p1,””);
}
Public async Task<string> GetTotal(string p1, string p2)
{
Return await GetTotal(p1,””,””);
}
Public async Task<string> GetTotal(string p1, string p2, string p3)
{
Return await GetTotal(p1,””,””, “”);
}
Public async Task<string> GetTotal(string p1, string p2, string p3,string
p4)
{
//do some actual async calling
Return result;
}
如果图中没有async/await,上面的代码是绝对正常的,但是对于async/await,我们是否应该避免上面列出的编码模式,基本上,如果我们没有状态机,我们应该尽量避免去?
Public async Task<string> GetTotal(string p1)
{
//do some actual async calling
Return result;
}
Public async Task<string> GetTotal(string p1, string p2)
{
//do some actual async calling
Return result;
}
Public async Task<string> GetTotal(string p1, string p2, string p3)
{
//do some actual async calling
Return result;
}
Public async Task<string> GetTotal(string p1, string p2, string p3,string
p4)
{
//do some actual async calling
Return result;
}
【问题讨论】:
-
如果您实际上不需要它,请不要使用
await。一个没有await的函数甚至不应该有async应用到它。 -
FWIW,我不认为这个问题和链接的问题是完全相同的,并且有 很多 可以说特别是关于开销 i> 这在另一个问题中并不真正相关(或不存在)。
-
我考虑过重新开放,但我们已经有了stackoverflow.com/q/37861864
标签: c# code-reuse