异步直通方法

问题描述:

当冒泡异步时,给定一个方法,其唯一目的是调用具有特定参数的另一个异步方法,以下哪一个是接受/首选模式,为什么?异步直通方法

async Task MyMethodAsync() => await MyOtherMethodAsync(1); 

Task MyMethodAsync() => MyOtherMethodAsync(1); 

我宁愿:

Task MyMethodAsync() => MyOtherMethodAsync(1); 

使用asyncawait实际上增加了不少开销,以建立一个完整的状态机,其中第二只是一个简单的方法调用。

如果您想添加异常处理,并且将堆栈跟踪作为本地方法或记录异常,那么使方法async本身具有唯一潜在优势。

更喜欢后者,它不设置了一个额外的async状态机仅做与它无关。