私はBackgroundWorker
_worker
void _worker_DoWork(object sender, DoWorkEventArgs e)
{
_timer = new System.Timers.Timer();
_timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
_timer.Interval = 5000;
_timer.Start();
}
それがライン_timer.Start()
に到達すると、それは終了したと思うので、発砲しRunWorkerCompleted event
ます。
_timer.Interval
時間に達し、_timer Elapsed event
トリガーされるまで、それを終了させたくありません。
void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
for (int i = 1; i < 20; i++)
{
if (listBox1.InvokeRequired)
listBox1.Invoke((Action)(() => listBox1.Items.Add("Do Things Thread")));
else
listBox1.Items.Add("Do Things Completed");
_worker.ReportProgress((int)(((decimal)i / (decimal)20) * 100));
Thread.Sleep(1000);
}
_timer.Stop();
}
BackgroundWorker
進捗状況を報告する必要があるためです。
これを行うにはどうすればよいですか。別ので実行する必要がありますthread
。