| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「C Sharp 非同期処理からUIスレッドにアクセスし画面を更新する」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
1行目: 1行目:
 
==C# 非同期処理からUIスレッドにアクセスし画面を更新する==
 
==C# 非同期処理からUIスレッドにアクセスし画面を更新する==
| [[C#]]
+
[[C Sharp]] |
  
 
===例===
 
===例===

2020年2月15日 (土) 08:34時点における版

C# 非同期処理からUIスレッドにアクセスし画面を更新する

C Sharp |

  • Task と Invoke と Delegete を利用
public partial class Form1 : Form
{        
    public delegate void UpdateStatusHandler(string msg);

    public void UpdateStatus(string msg)
    {
        lblStatus.Text = msg;
    }
    
    public void DoAsyncTaskButton_Click()
    {
        Task task = Task.Factory.StartNew(() =>
        {
            while (true)
            {
                string msg = ""; // some messages
                lblStatus.Invoke(new UpdateStatusHandler(UpdateStatus), msg);
            }
        });
    }
}