Ich habe festgestellt, dass Visual Studio dies in einigen Fällen empfiehlt
await using var disposable = new Disposable();
// Do something
an Stelle von
using var disposable = new Disposable();
// Do something
Was ist der Unterschied zwischen using
und await using
?
Wie soll ich mich für eine entscheiden?
await using
mit aIAsyncDisposable
und nurusing
mit a verwenden,IDisposable
da keiner von beiden vom anderen erbt. Sie können beide nur verwenden, wenn die konkrete Klasse beide implementiert, und dann hängt es davon ab, ob Sie asynchronen Code schreiben oder nicht.Antworten:
Klassische Synchronisierung mit
Classic using ruft die
Dispose()
Methode eines Objekts auf, das dieIDisposable
Schnittstelle implementiert .Ist äquivalent zu
Neue Async warten auf Verwendung
Die neuen warten mit Aufrufen und warten auf die
DisposeAsync()
Methode eines Objekts, das dieIAsyncDisposable
Schnittstelle implementiert .Ist äquivalent zu
Die IAsyncDisposable-Schnittstelle wurde in
.NET Core 3.0
und hinzugefügt.NET Standard 2.1
.quelle