非同期処理3 - peace098beat/windows_applicaciton GitHub Wiki

非同期処理の簡単実装 + UIの同時更新

プログレスバー

時間のかかる解析処理を複数回まわすことが多い.そんなときは,プログレスバーでの現在状況の確認が必須.そこで非同期で解析をまわしながら,UIスレッドを呼び出しプログレスバーの更新が可能な処理をしめす

// asyncを宣言. 
private async void csvToolStripMenuItem_Click(object sender, EventArgs e)
{

    var ResultDatas = new List<double>();

    for (int i = 0; i < nTrainDatas; i++)
    {

	    await Task.Run(() =>
	    {
	        var Result = new YourAnalyser(i, nTraiDatas);
	        ResultDatas.add(Result); // Task.runの外の変数も使える
	        // 返却不要
	    });

    // UIの更新はTask.Runの外で行う
    ProgressBar1.Value = i;
    }


}
⚠️ **GitHub.com Fallback** ⚠️