异步直通方法
问题描述:
当冒泡异步时,给定一个方法,其唯一目的是调用具有特定参数的另一个异步方法,以下哪一个是接受/首选模式,为什么?异步直通方法
async Task MyMethodAsync() => await MyOtherMethodAsync(1);
或
Task MyMethodAsync() => MyOtherMethodAsync(1);
答
我宁愿:
Task MyMethodAsync() => MyOtherMethodAsync(1);
使用async
和await
实际上增加了不少开销,以建立一个完整的状态机,其中第二只是一个简单的方法调用。
如果您想添加异常处理,并且将堆栈跟踪作为本地方法或记录异常,那么使方法async
本身具有唯一潜在优势。
答
更喜欢后者,它不设置了一个额外的async
状态机仅做与它无关。