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

解決3: async/await + Task.RunでUIスレッドを解放する

出典: WinForms で UseWaitCursor が戻らないバグの解決法(業務SE目線)解決3: async/await + Task.RunでUIスレッドを解放する

解決3: async/await + Task.RunでUIスレッドを解放する (csharp)#b2fa15052272
// ✅解決3: async/await + Task.Run
private async void btnLoad_Click(object sender, EventArgs e)
{
    btnLoad.Enabled = false;
    using (new WaitCursorScope(this))
    {
        var dt = await Task.Run(()=>
        {
            var t = new DataTable();
            using (var conn = new SqlConnection(_connectionString))
            using (var adapter = new SqlDataAdapter("SELECT * FROM big_table", conn))
            {
                adapter.Fill(t);
            }
            return t;
        });
        dataGridView1.DataSource = dt;
    }
    btnLoad.Enabled = true;
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #b2fa15052272
  • lines: 20
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「解決3: async/await + Task.RunでUIスレッドを解放する」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

5
図鑑トップ