使用と使用待機の違いは何ですか?そして、どの方法を使用するかをどのように決定できますか?

ジャスティン:

場合によっては、Visual Studioでこれを行うことをお勧めします

await using var disposable = new Disposable();
// Do something

これの代わりに

using var disposable = new Disposable();
// Do something

違いは何であるusingとはawait using

どれを使用するかをどのように決定すればよいですか?

ジャスティン:

クラシック同期を使用して

クラシックを使用してDispose()IDisposableインターフェイスを実装するオブジェクトメソッドを呼び出します。

using var disposable = new Disposable();
// Do Something...
    

に相当

IDisposable disposable = new Disposable();
try
{
    // Do Something...
}
finally
{
    disposable.Dispose();
}

新しい非同期は使用を待ちます

新しい関数は、呼び出しの使用を待機しDisposeAsync()IAsyncDisposableインターフェースを実装するオブジェクトメソッドを待機ます。

await using var disposable = new AsyncDisposable();
// Do Something...
    

に相当

IAsyncDisposable disposable = new AsyncDisposable();
try
{
    // Do Something...
}
finally
{
    await disposable.DisposeAsync();
}

IAsyncDisposableインタフェースに追加されました.NET Core 3.0.NET Standard 2.1

.NETでは、アンマネージリソースを所有するクラスは通常、IDisposableインターフェイスを実装して、アンマネージリソースを同期的に解放するメカニズムを提供します。ただし、場合によっては、同期リソースに加えて(またはその代わりに)アンマネージリソースを解放するための非同期メカニズム提供する必要がありますこのようなメカニズムを提供すると、コンシューマは、GUIアプリケーションのメインスレッドを長時間ブロックすることなく、リソースを大量に消費する破棄操作を実行できます。

このインターフェイスIAsyncDisposable.DisposeAsyncメソッドは、非同期の破棄操作を表すValueTask返しますアンマネージリソースを所有するクラスはこのメソッドを実装し、これらのクラスのコンシューマーは、不要になったオブジェクトに対してこのメ​​ソッドを呼び出します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

サブプロセスPopenと呼び出しの違いは何ですか(それらをどのように使用できますか)?

分類Dev

OpenStackとは何ですか?そして、それはどのように使用できますか?

分類Dev

R data.tableで、.SDを使用しているときにjでdot(。)と 'c'を取得することの違いは何ですか?どのように機能しますか?

分類Dev

Javaで再帰を使用しているときにStackOverflowErrorをどのように解決しますか?

分類Dev

複数の入力を待機しているときにTPLTransformBlockを使用するにはどうすればよいですか?

分類Dev

*と&を使用して値が等しいかどうかを比較することの違いは何ですか?

分類Dev

関数ngOnInitを使用するときに「OnInitを実装する」かどうかの違いは何ですか

分類Dev

言語をsicpに設定してDrRacketでrackunitを使用することは可能ですか?その場合、どのように使用しますか?

分類Dev

Kotlinの「constvalnum = 1」のタイプは何ですか?そして、彼らはそれをどのように定義することができますか?

分類Dev

セレンc#でJavaScriptExecutorをいつ使用するかをどのように決定できますか?

分類Dev

iOSでedgeSDKラッパーを使用してマイクロサービスをデプロイするときのimagePathとapiRootUrlの値は何ですか?それらを設定するにはどうすればよいですか?

分類Dev

glslとopenclのクランプ機能はどのように機能しますか?ブランチの作成を使用しますか?そして私はそれを使用することを避けるべきですか?

分類Dev

未決定のJSONキーをループして、それを使用してメッセージを送信するにはどうすればよいですか?

分類Dev

UbuntuがDebianを「不安定」に使用するのはなぜですか?それでは、どのようにして安定することができますか?

分類Dev

PHPとMySQLを使用してFizzBuzzの問題を解決するにはどうすればよいですか?

分類Dev

C ++でnoexceptを使用する方法またはそれはどのように機能しますか?

分類Dev

VS Codeを使用しているときにRustで「未解決のインポート」を解決するにはどうすればよいですか?

分類Dev

Runtime.exec()を使用して実行されたコマンドが何らかの出力を提供しているのか、待機しているだけで出力を提供していないのかを知るにはどうすればよいですか?

分類Dev

Ajaxを使用しているときに、コールバックを機能させることができません。コールバックを待っていないようですが、何が間違っているのですか?

分類Dev

`GROUP BY`はどの集計方法を使用するかをどのように決定しますか?

分類Dev

RemoteWebDriverの拡張機能を使用してFirefoxProfileを設定するにはどうすればよいですか?

分類Dev

コードは、WebSphereRequestUpgradeStrategyとTomcatRequestUpgradeStrategyのどちらを使用するかをどのように決定しますか?

分類Dev

Google Analytics Management APIを使用して「広告機能」やその他の設定を設定するにはどうすればよいですか?

分類Dev

ng-repeatを使用して解析するときに、最初のアイテムにのみ何かを印刷するにはどうすればよいですか?

分類Dev

どのFetchModeをデフォルトで使用するかをHibernateがどのように決定しますか?

分類Dev

pysparkで機能名を使用してランダムフォレストの決定パスを印刷するにはどうすればよいですか?

分類Dev

gradlewAssembleRelease、gradlewInstallRelease、およびgradlew bundleReleaseとするとき、それを使用する方法との違いは何ですか?

分類Dev

OpenSSL BIOとは何ですか?それらはどのように機能しますか?OpenSSLでBIOはどのように使用されますか?

分類Dev

3つの整数の関係を使用して三角形を決定するにはどうすればよいですか、および/またはこのプログラムを機能させるためにどの宣言を使用できますか?

Related 関連記事

  1. 1

    サブプロセスPopenと呼び出しの違いは何ですか(それらをどのように使用できますか)?

  2. 2

    OpenStackとは何ですか?そして、それはどのように使用できますか?

  3. 3

    R data.tableで、.SDを使用しているときにjでdot(。)と 'c'を取得することの違いは何ですか?どのように機能しますか?

  4. 4

    Javaで再帰を使用しているときにStackOverflowErrorをどのように解決しますか?

  5. 5

    複数の入力を待機しているときにTPLTransformBlockを使用するにはどうすればよいですか?

  6. 6

    *と&を使用して値が等しいかどうかを比較することの違いは何ですか?

  7. 7

    関数ngOnInitを使用するときに「OnInitを実装する」かどうかの違いは何ですか

  8. 8

    言語をsicpに設定してDrRacketでrackunitを使用することは可能ですか?その場合、どのように使用しますか?

  9. 9

    Kotlinの「constvalnum = 1」のタイプは何ですか?そして、彼らはそれをどのように定義することができますか?

  10. 10

    セレンc#でJavaScriptExecutorをいつ使用するかをどのように決定できますか?

  11. 11

    iOSでedgeSDKラッパーを使用してマイクロサービスをデプロイするときのimagePathとapiRootUrlの値は何ですか?それらを設定するにはどうすればよいですか?

  12. 12

    glslとopenclのクランプ機能はどのように機能しますか?ブランチの作成を使用しますか?そして私はそれを使用することを避けるべきですか?

  13. 13

    未決定のJSONキーをループして、それを使用してメッセージを送信するにはどうすればよいですか?

  14. 14

    UbuntuがDebianを「不安定」に使用するのはなぜですか?それでは、どのようにして安定することができますか?

  15. 15

    PHPとMySQLを使用してFizzBuzzの問題を解決するにはどうすればよいですか?

  16. 16

    C ++でnoexceptを使用する方法またはそれはどのように機能しますか?

  17. 17

    VS Codeを使用しているときにRustで「未解決のインポート」を解決するにはどうすればよいですか?

  18. 18

    Runtime.exec()を使用して実行されたコマンドが何らかの出力を提供しているのか、待機しているだけで出力を提供していないのかを知るにはどうすればよいですか?

  19. 19

    Ajaxを使用しているときに、コールバックを機能させることができません。コールバックを待っていないようですが、何が間違っているのですか?

  20. 20

    `GROUP BY`はどの集計方法を使用するかをどのように決定しますか?

  21. 21

    RemoteWebDriverの拡張機能を使用してFirefoxProfileを設定するにはどうすればよいですか?

  22. 22

    コードは、WebSphereRequestUpgradeStrategyとTomcatRequestUpgradeStrategyのどちらを使用するかをどのように決定しますか?

  23. 23

    Google Analytics Management APIを使用して「広告機能」やその他の設定を設定するにはどうすればよいですか?

  24. 24

    ng-repeatを使用して解析するときに、最初のアイテムにのみ何かを印刷するにはどうすればよいですか?

  25. 25

    どのFetchModeをデフォルトで使用するかをHibernateがどのように決定しますか?

  26. 26

    pysparkで機能名を使用してランダムフォレストの決定パスを印刷するにはどうすればよいですか?

  27. 27

    gradlewAssembleRelease、gradlewInstallRelease、およびgradlew bundleReleaseとするとき、それを使用する方法との違いは何ですか?

  28. 28

    OpenSSL BIOとは何ですか?それらはどのように機能しますか?OpenSSLでBIOはどのように使用されますか?

  29. 29

    3つの整数の関係を使用して三角形を決定するにはどうすればよいですか、および/またはこのプログラムを機能させるためにどの宣言を使用できますか?

ホットタグ

アーカイブ