私はいくつかのWPFアプリケーションを持っています。内でいくつかのコードを実行する必要があり、そのためBackgroundWorker に使用DispatcherTimerします。また、そのコードは UI を使用しません。
私の質問はそれでいいですか?Timerまたは、またはwhile&を使用する方が良いThread.Sleepですか?
また、Task& TimerorDispatcherTimerの代わりに使用する方が良いBackgroundWorkerですか?
したがって、選択する2つのアプローチがあります。(以上?)
BackgroundWorker通話DispatcherTimer || Timer || (While & Thread.Sleep)Task通話DispatcherTimer || Timer || (While & Thread.Sleep)
最高のパフォーマンス ソリューションを知りたいだけです。
ここにいくつかのコードがあります
DispatcherTimer logManagerUpdater = new DispatcherTimer(DispatcherPriority.Background);
BackgroundWorker logManagerWorker = new BackgroundWorker();
private void StartLogManager()
{
logManagerWorker.DoWork += new DoWorkEventHandler(logManagerWorker_DoWork);
logManagerWorker.RunWorkerAsync();
}
void logManagerWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (this.logManagerWorker.CancellationPending)
{
e.Cancel = true;
return;
}
logManagerUpdater.Interval = new TimeSpan(0, 0, 10);
logManagerUpdater.Tick += new EventHandler(logManagerUpdater_Tick);
logManagerUpdater.Start();
}
void logManagerUpdater_Tick(object sender, EventArgs e)
{
LogManagerJob();
LogDBManagerJob();
}