http://msdn.microsoft.com/ja-jp/magazine/jj991977.aspx の前半部分まとめ。 戻り値がvoidのメソッドを非同期呼び出ししない 理由 戻り値が無い為、呼び出し側でタスクの終了を検出することができない為。 戻り値が無い為、タスクで発生した例外を呼び出し側で補足することができない為。 例外 イベントハンドラーはOK。→ 前項の理由のような挙動でも問題ない。 すべて非同期にする 同期処理と非同期処理、具体例を挙げると await と Task.Waite() を同一処理パスに混在させてはいけない。アプリケーション形態(WindowsFormアプリ、WPFアプリ、SilverLightアプリ、ASP.NETアプリ)によってはデッドロックが発生する。 ※なんとなくデッドロック発生のイメージが浮かぶ程度の理解しかできていませんが、下記コードのコメント