.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#のタスクとasync/awaitについて

  非同期メソッドとasync/awaitキーワード 非同期処理でありながら、コールバック記述をする事なく、awaitキーワードを使って完了待機を記述できる(同期的に記述できる)。 「非同期 ...

Oracle文字コード

Oracle文字コードについて ・マルチバイト・キャラクタセット   ・VARCHAR2とNVARCHAR2 CHAR(10) VARCHAR2(10) 10バイト指定。 データベースキャラ ...

Red Hat Linux コマンド集

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

C++のvector

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


プロフィール
管理人です。 業務プログラムに勤しむ人です プロフィール詳細


検索

カテゴリ

アーカイブ