■Task
並列にこなしたい処理のひとつひとつ
処理の手続きをまとめたもの
■async
メソッド内でawaitをする場合メソッドの修飾子としてこれが必要
これ自体は単なる装飾で、コンパイル結果は通常のメソッドと変わらないとのこと。
(await という新キーワードが C# 4.0 以前のコードを破壊しないようにという意図)
参考
■await
asyncメソッド内で使用可能
修飾された処理を別スレッドにて開始し、自身は一旦止まる?
別スレッドの処理が終わったら停止前と同じスレッドにて処理を再開する。
コレガワカラナイ
WPFなんかでイベントハンドラを実装するとUIスレッドにて処理が行われるが、
イベントハンドラ中でawaitするとUIスレッドが止まっちゃわない?
(実際に動かして確認したらなんの問題もなかった。なんで?)
■とりあえず使うだけなら
asyncメソッド内で重たい処理をTask.Run()でawait
■Task.Waitは使ってはいけないらしい
デッドロックのリスクが高いとか
awaitで待とう
Taskとasync/awaitについて分かりやすく解説されてるサイトがあったら教えて下さい…。
参考
0 件のコメント:
コメントを投稿