動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

定石6: Wait()/ Resultでデッドロック—業務系の禁忌パターン

出典: WinForms 非同期処理の正解 — BackgroundWorker / Task.Run / async-await の使い分け定石6: Wait()/ Resultでデッドロック—業務系の禁忌パターン

定石6: Wait()/ Resultでデッドロック—業務系の禁忌パターン (csharp)#a9b2d6704a87
// ❌ NG: UIスレッドでWait()/ Resultを呼ぶとデッドロック
private void btnStart_Click(object sender, EventArgs e)
{
    var result = Task.Run(()=> DoHeavyWork()).Result;   // ← UIスレッド固まる
    // ...
}
 
// ✅ OK: awaitで書き直す(UIスレッド解放される)
private async void btnStart_Click(object sender, EventArgs e)
{
    var result = await Task.Run(()=> DoHeavyWork());
    // ...
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #a9b2d6704a87
  • lines: 13
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「定石6: Wait()/ Resultでデッドロック—業務系の禁忌パターン」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

5
図鑑トップ