C# 中整个函数链需要标记为异步

Ami*_*mit 0 c# async-await

我有一个现有程序,我需要调用仅提供异步操作的第三方库函数。

主 -> f1() - f2() -> f3() -> f4()

f4 调用第三方的异步方法。因此,f4 必须标记为异步,然后 f3 必须标记为异步,一直到 main()。这样的理解正确与否?

Mar*_*ell 6

简短的版本是“是”。

较长的版本是,您在技术上可以做一些事情来避免这种情况,但是:您将在每一步中与语言和运行时作斗争;如果您只需在该调用路径中切换到/ ,肯定会方便得多。是的,由于这个原因,可等待类型实际上具有“传染性”——它会迅速传播到越来越多的代码中。然而,这通常没有太大(如果有的话)危害,并且通常在可扩展性方面具有很大的优势。一种非常良性的感染。asyncawait