非同期メソッドを待つ必要がありますか?

アレックス

サービスAPI呼び出しがあるとしましょう。呼び出し先はパフォーマンスがいくらか重要であるため、API呼び出しを必要以上に長く保持しないようにするために、SaveAsync()使用されるメソッドがあります。awaitただし、非同期バージョンと同じくらい(またはおそらくもっと長く)API呼び出しを保持するため、それはできません

私が尋ねている理由はこれです:あなた await電話しなかっ場合Task返されオブジェクトがガベージコレクションされる可能性はありますか?もしそうなら、それは実行中のタスクを中断しますか?

ユヴァル・イチャコフ

私が尋ねている理由はこれです:あなたが呼び出しを待たないならば、返されたタスクオブジェクトがガベージコレクションを得る可能性はありますか?

一般的に、いいえ、それは起こらないはずです。TaskSchedulerタスクをキューに入れる基になるものは、通常、タスクが完了するまで、必要な存続期間中、タスクへの参照を保持します。あなたはのドキュメントでそれを見ることができますTaskScheduler.QueueTask

典型的な実装では、タスクを内部データ構造に格納します。内部データ構造は、将来のある時点でそれらのタスクを実行するスレッドによって処理されます。

あなたの本当の問題は、実行時に進行中の非同期操作を追跡するASP.NETSynchronizationContextにあります。非同期操作の前にコントローラーのアクションが終了した場合、例外が発生します。

あなたは「火をして忘れる」がASP.NETでの操作をしたい場合は、のいずれかを介して、ASP.NETランタイムに登録することを確認しなければなりませんHostingEnvironment.QueueBackgroundWorkItem BackgroundTaskManager

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

C#非同期ライブラリメソッドの呼び出しを待つ必要がありますか?

分類Dev

ストリームを返す非同期メソッドを待つ必要を防ぐ方法はありますか?

分類Dev

HttpClientを破棄する前に、非同期メソッドが完了するのを待つ必要がありますか?

分類Dev

HttpClientを破棄する前に、非同期メソッドが完了するのを待つ必要がありますか?

分類Dev

asyncメソッドの最後の非同期呼び出しは待機する必要がありますか?

分類Dev

webfluxコード内で非同期メソッドの結果を待つ方法があります

分類Dev

接続を待つ必要がある場合、メイン非同期を実行する必要がありますか?

分類Dev

内部メソッドは非同期である必要がありますが、外部メソッドは非同期である必要がありますか?

分類Dev

Javaのメソッドから戻る前に非同期APIコールバックを待つ必要がある

分類Dev

メソッドはいつ同期を宣言する必要がありますか?

分類Dev

私はイベントを待つ必要があるときにメソッドが非同期にする方法

分類Dev

「この非同期メソッドには「待機」演算子がなく、同期して実行される」と心配する必要がありますか?警告

分類Dev

非同期バックグラウンド タスクからメイン スレッドの非同期メソッドに例外を渡す必要があります。

分類Dev

すでに非同期であるuseEffectの非同期関数を待つ必要がありますか?

分類Dev

Task.Runをメソッドに入れて非同期にする必要がありますか?

分類Dev

非同期メソッドが完了するのを待つ方法は?

分類Dev

非同期メソッドが終了するのを待つ

分類Dev

非同期メソッドが完了するのを待つ

分類Dev

同期メソッドを待つとどうなりますか

分類Dev

同期メソッド内で非同期メソッドを待ちますか?

分類Dev

2つの非同期メソッドのいずれかが結果を返すのを待っています

分類Dev

非同期メソッドを待たないとどうなりますか

分類Dev

他の「非同期」メソッド内でメソッドを「待機」しても問題ありませんか

分類Dev

ArrayBlockingQueueラッパーメソッドを同期する必要がありますか?

分類Dev

非同期メソッドを待つ方法

分類Dev

非同期バージョンを作成するときに、メソッドの同期バージョンを常に含める必要がありますか?

分類Dev

メソッドがすでに非同期である場合、高速操作を非同期にする必要があります

分類Dev

すでに非同期コードフローにあるメソッドで常にasync / awaitを使用する必要がありますか?

分類Dev

違いを待つ同期と非同期メソッドを呼び出しますか?

Related 関連記事

  1. 1

    C#非同期ライブラリメソッドの呼び出しを待つ必要がありますか?

  2. 2

    ストリームを返す非同期メソッドを待つ必要を防ぐ方法はありますか?

  3. 3

    HttpClientを破棄する前に、非同期メソッドが完了するのを待つ必要がありますか?

  4. 4

    HttpClientを破棄する前に、非同期メソッドが完了するのを待つ必要がありますか?

  5. 5

    asyncメソッドの最後の非同期呼び出しは待機する必要がありますか?

  6. 6

    webfluxコード内で非同期メソッドの結果を待つ方法があります

  7. 7

    接続を待つ必要がある場合、メイン非同期を実行する必要がありますか?

  8. 8

    内部メソッドは非同期である必要がありますが、外部メソッドは非同期である必要がありますか?

  9. 9

    Javaのメソッドから戻る前に非同期APIコールバックを待つ必要がある

  10. 10

    メソッドはいつ同期を宣言する必要がありますか?

  11. 11

    私はイベントを待つ必要があるときにメソッドが非同期にする方法

  12. 12

    「この非同期メソッドには「待機」演算子がなく、同期して実行される」と心配する必要がありますか?警告

  13. 13

    非同期バックグラウンド タスクからメイン スレッドの非同期メソッドに例外を渡す必要があります。

  14. 14

    すでに非同期であるuseEffectの非同期関数を待つ必要がありますか?

  15. 15

    Task.Runをメソッドに入れて非同期にする必要がありますか?

  16. 16

    非同期メソッドが完了するのを待つ方法は?

  17. 17

    非同期メソッドが終了するのを待つ

  18. 18

    非同期メソッドが完了するのを待つ

  19. 19

    同期メソッドを待つとどうなりますか

  20. 20

    同期メソッド内で非同期メソッドを待ちますか?

  21. 21

    2つの非同期メソッドのいずれかが結果を返すのを待っています

  22. 22

    非同期メソッドを待たないとどうなりますか

  23. 23

    他の「非同期」メソッド内でメソッドを「待機」しても問題ありませんか

  24. 24

    ArrayBlockingQueueラッパーメソッドを同期する必要がありますか?

  25. 25

    非同期メソッドを待つ方法

  26. 26

    非同期バージョンを作成するときに、メソッドの同期バージョンを常に含める必要がありますか?

  27. 27

    メソッドがすでに非同期である場合、高速操作を非同期にする必要があります

  28. 28

    すでに非同期コードフローにあるメソッドで常にasync / awaitを使用する必要がありますか?

  29. 29

    違いを待つ同期と非同期メソッドを呼び出しますか?

ホットタグ

アーカイブ