非同期処理3 - peace098beat/windows_applicaciton GitHub Wiki
時間のかかる解析処理を複数回まわすことが多い.そんなときは,プログレスバーでの現在状況の確認が必須.そこで非同期で解析をまわしながら,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;
}
}