1秒ごとに実行したい関数があり、そのほかに他の関数があります。他の関数でスレッドを使用し、ウィンドウクラッシュを回避しているため、Backgroundworkerを使用して、次のように実行すると思われる関数を呼び出すことにしました。
Main()
{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerAsync();
}
public void worker_DoWork(object sender, EventArgs e)
{
AutoChecking(); // thats a function should Run on Background every 1 second
}
public void AutoChecking()
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
if (SystemisGood == true)
Updatecolor.Fill = Green;
else
Updatecolor.Fill = Red;
}));
}
ただし、この機能は 1 秒ごとに機能する理由または解決策が 1 回しか機能せず、backgroundworker にとどまります ?! PS: タイマーを使いたくない...