Zauważyłem, że w niektórych przypadkach Visual Studio zaleca to zrobić
await using var disposable = new Disposable();
// Do something
zamiast tego
using var disposable = new Disposable();
// Do something
Jaka jest różnica między using
i await using
?
Jak zdecydować, którego użyć?
await using
z aIAsyncDisposable
i możesz używać tylkousing
z,IDisposable
ponieważ żadne z nich nie dziedziczy po drugim. Można użyć tylko jednego z nich, jeśli konkretna klasa implementuje oba, a następnie zależy to od tego, czy piszesz kod asynchroniczny, czy nie.Odpowiedzi:
Klasyczna synchronizacja przy użyciu
Klasyczne użycie wywołuje
Dispose()
metodę obiektu implementującegoIDisposable
interfejs.Jest równa
Nowy async oczekuje na użycie
Nowe czekają na wywołania i oczekują na
DisposeAsync()
metodę obiektu implementującegoIAsyncDisposable
interfejs.Jest równa
IAsyncDisposable Interfejs dodano
.NET Core 3.0
i.NET Standard 2.1
.źródło