Me di cuenta de que, en algún caso, Visual Studio recomienda hacer esto
await using var disposable = new Disposable();
// Do something
en lugar de esto
using var disposable = new Disposable();
// Do something
¿Cuál es la diferencia entre usingy await using?
¿Cómo debo decidir cuál usar?

await usingcon aIAsyncDisposabley solo se puede usarusingcon aIDisposableya que ninguno hereda del otro. El único momento que puede usar es si la clase concreta implementa ambos y luego depende de si está escribiendo código asincrónico o no.Respuestas:
Sincronización clásica usando
El uso clásico llama al
Dispose()método de un objeto que implementa laIDisposableinterfaz.Es equivalente a
Nueva asíncrona aguarda utilizando
El nuevo espera usando llamadas y espera el
DisposeAsync()método de un objeto que implementa laIAsyncDisposableinterfaz.Es equivalente a
La interfaz IAsyncDisposable se agregó en
.NET Core 3.0y.NET Standard 2.1.fuente