C#-非同期処理
Task.Run vs Task.Factory.StartNew Task.Run vs Task.Factory.StartNew social.msdn.microsoft.com devblogs.microsoft.com .NET Framework 4.5 以降は Task.Run が推奨である。 理由は、Task.Run の方がシンプルに記述できるため。 オプション指定が必要な…
スレッドプール ThreadPool.GetMaxThreads メソッド スレッドプール (Task.Run) スレッド (Thread) スレッド (TaskCreationOptions.LongRunning) ThreadPool.SetMaxThreads メソッド スレッドプール マネージド スレッド プール | Microsoft Docs 1度生成さ…
lock ステートメントで指定したブロックの処理をロックできる。マルチタスクによる不整合を防ぐことができる。
CancellationTokenSource クラス 方法1:IsCancellationRequested プロパティ 方法2:ThrowIfCancellationRequested メソッド CancellationTokenSource クラス CancellationTokenSource クラス (System.Threading) | Microsoft Docs タスクのキャンセル | …
タスクの例外処理 try-catch 継続タスク タスクの例外処理 例外処理 (タスク並列ライブラリ) | Microsoft Docs タスクの例外処理を行わない場合、例外をキャッチできず、異常情報を通知できない。 なので例外をキャッチしてみる。方法は以下の2通り。 try-c…
FromCurrentSynchronizationContext メソッドでUIスレッドに割当てられたタスクスケジューラーを取得できる。このタスクスケジューラーを使えば、タスク を UIスレッド で動かすことができる。
非同期メソッドの戻り値が void である場合、[ async void ] または [ async Task ] メソッドと定義できる。両者を比較した場合、async void メソッドはいくつかできないことがある。
Task クラス + async / await キーワード 注意1:Task 内で UI 操作をしないこと 注意2:async void には注意すること Task クラス only Thread クラス Task クラス + async / await キーワード async / await キーワードは、C# 5.0 以降で使用できる。 as…