私はいくつかのWPFアプリケーションを持っています。内でいくつかのコードを実行する必要があり、そのためBackgroundWorker
に使用DispatcherTimer
します。また、そのコードは UI を使用しません。
私の質問はそれでいいですか?Timer
または、またはwhile
&を使用する方が良いThread.Sleep
ですか?
また、Task
& Timer
orDispatcherTimer
の代わりに使用する方が良い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();
}