.net C# 未分類

C#のタスク注意事項

投稿日:2018年2月3日 更新日:

 

バックグラウンドタスクで発生した例外

  • タスクの例外処理に関しては、.NET 4.5で大きな仕様変更が発生している。
  • バックグラウンドタスクの完了を待機する(awaitキーワードやWaitメソッドを使う)場合には、バックグラウンドタスクで発生した例外が呼び出し元のスレッドに送られる。これには変更がない。
  • バックグラウンドタスクの完了を待機しない場合には、次のように仕様が変わっている。
    1. .NET 4.0: トラップされなかった場合は、プログラムが終了する
    2. .NET 4.5: トラップされなかった場合は、その例外は失われる(既定値)
  • この.NET 4.5の動作は、.NET 4.0と同じ動作をするように変更できる。App.configファイルでThrowUnobservedTaskExceptionsをtrueに設定する。

  <!--バックグラウンドタスクで発生した例外を必ず受け取れるようにする設定 -->
  <runtime>
    <ThrowUnobservedTaskExceptions enabled="true"/>
  </runtime>

 

 

 

参考にさせて頂いたページ

WPF:例外をまとめてトラップするには?[C#/VB]

 

 

 

スポンサーリンク

スポンサーリンク

-.net, C#, 未分類

執筆者:

関連記事

C++のTIPS

・それ、ポインタ使わなくてもできるよ:C言語のポインタとC++の流儀 ・【C言語/C++】 配列は戻り値にできない【配列を適切に返す方法】    

C++のvector

vector push_backで登録する変数はヒープ領域に確保される。vector変数の解放で、登録された変数もヒープ領域から解放される。 vectorは、デストラクタが呼び出されると、メモリの解放 ...

Red Hat Linux コマンド集

コマンド一覧と説明 コマンド 説明 ls -al ファイルやディレクトリの情報を表示する。 ps -al 端末操作のプロセスを表示する ps -xl 実行しているプロセスを表示する grep -i 文 ...

Android開発のTIPS WEBページ 

  スレッドから画面操作 スレッドからUIを操作する編集する メインスレッド以外からのGUI更新 Android 非同期処理についてまとめてみた 別スレッドでキュー管理(Handler, L ...

C++のクラス

メンバ変数   メンバ変数がクラスの場合の初期化 クラスのメンバ変数が引数付きのコンストラクタの場合、メンバイニシャライザを使ってコンストラクタを呼び出す。 クラスのメンバ変数の引数付きのコ ...