我有一個函數,我想運行它每隔1秒,旁邊,我有其他的東西, ,因爲即時通訊使用我的其他功能上的線程,並避免窗口崩潰,我決定使用Backgroundworker調用函數,假設運行像這樣:WPF,爲什麼我的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;
}));
}
然而,這個功能只能工作一次現在的任何理由或解決方案,使其每秒工作,並保持backgroundworker?! PS:我不想使用計時器...
爲什麼你不想使用計時器?這就是他們的目的。 –
我寧願只用這個,因爲計時器會阻止我的主要功能線程... – PublicAffair
你可以發佈代碼如何使用計時器阻止你的用戶界面?使用backgroundworker作爲定時器並不是真正的好方法 –