セージ の メモ書き

メモこそ命の恩人だ

C#-非同期処理

Task.Run vs Task.Factory.StartNew

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 の方がシンプルに記述できるため。 オプション指定が必要な…

Task スレッド数の上限

スレッドプール ThreadPool.GetMaxThreads メソッド スレッドプール (Task.Run) スレッド (Thread) スレッド (TaskCreationOptions.LongRunning) ThreadPool.SetMaxThreads メソッド スレッドプール マネージド スレッド プール | Microsoft Docs 1度生成さ…

lock ステートメント / MethodImplOptions.Synchronized

lock ステートメントで指定したブロックの処理をロックできる。マルチタスクによる不整合を防ぐことができる。

タスクのキャンセル してみる

CancellationTokenSource クラス 方法1:IsCancellationRequested プロパティ 方法2:ThrowIfCancellationRequested メソッド CancellationTokenSource クラス CancellationTokenSource クラス (System.Threading) | Microsoft Docs タスクのキャンセル | …

タスクの例外処理 してみる

タスクの例外処理 try-catch 継続タスク タスクの例外処理 例外処理 (タスク並列ライブラリ) | Microsoft Docs タスクの例外処理を行わない場合、例外をキャッチできず、異常情報を通知できない。 なので例外をキャッチしてみる。方法は以下の2通り。 try-c…

タスク を UIスレッド で動かしてみる

FromCurrentSynchronizationContext メソッドでUIスレッドに割当てられたタスクスケジューラーを取得できる。このタスクスケジューラーを使えば、タスク を UIスレッド で動かすことができる。

async void メソッド してみる

非同期メソッドの戻り値が void である場合、[ async void ] または [ async Task ] メソッドと定義できる。両者を比較した場合、async void メソッドはいくつかできないことがある。

async / await してみる

Task クラス + async / await キーワード 注意1:Task 内で UI 操作をしないこと 注意2:async void には注意すること Task クラス only Thread クラス Task クラス + async / await キーワード async / await キーワードは、C# 5.0 以降で使用できる。 as…