Kobarin's Development Blog

C#やASP.NETなどについての記録です。

C#で、待機中のイベントを処理する

以下のように、ループ中にLabelに進捗状況を表示する処理があったとする。

for(int i=0; i<100; i++)
{
  Label1.Text = String.Format("{0}/{1}", i, 100);
}

この場合、ループ終了後にLabel1が初めて表示される事になり、本来の目的を達せられない。
以下のようにDoEvents()を加える事で、待機中のイベントを処理する事が出来る。

for(int i=0; i<100; i++)
{
  Label1.Text = String.Format("{0}/{1}", i, 100);
  Application.DoEvents();
}