Percebi que, em alguns casos, o Visual Studio recomenda fazer isso
await using var disposable = new Disposable();
// Do something
em vez disso
using var disposable = new Disposable();
// Do something
Qual é a diferença entre using
e await using
?
Como devo decidir qual usar?
await using
com umIAsyncDisposable
e você só pode usarusing
com um, umaIDisposable
vez que nenhum herda do outro. O único momento em que você pode usar é se a classe concreta implementa as duas coisas e depende se você está escrevendo código assíncrono ou não.Respostas:
Sincronização clássica usando
O uso clássico chama o
Dispose()
método de um objeto que implementa aIDisposable
interface.É equivalente a
Novo assíncrono aguarda o uso
Os novos aguardam o uso de chamadas e aguardam o
DisposeAsync()
método de um objeto implementando aIAsyncDisposable
interface.É equivalente a
A interface IAsyncDisposable foi adicionada em
.NET Core 3.0
e.NET Standard 2.1
.fonte