我正在尝试更新一个与UI数据绑定的
这有效,因为DispatcherTimer是Dispatcher的一部分,但会冻结UI:
因此,使用BackgroundWorker,我将其组合成以下内容:
但是UI没有任何反应。我错过了什么/做错了什么?
ObservableCollection
。我知道要做到这一点,我需要使用Dispatcher
和BeginInvoke()
,为了使UI不会在此过程中冻结,使用BackgroundWorker是一个好的方法。无论如何,我已经编译并运行了所有内容,但什么也没有发生。我需要每2分钟左右更新UI,因此我还使用了DispatcherTimer
。这有效,因为DispatcherTimer是Dispatcher的一部分,但会冻结UI:
DispatcherTimer dispTimer = new DispatcherTimer();
dispTimer.Tick += dispTimer_Tick;
dispTimer.Interval = new TimeSpan(0, 0, 45);
dispTimer.Start();
private void dispTimer_Tick(object sender, EventArgs e)
{
PartialEmployees.Clear();
}
因此,使用BackgroundWorker,我将其组合成以下内容:
DispatcherTimer dispTimer = new DispatcherTimer();
dispTimer.Tick += dispTimer_Tick;
dispTimer.Interval = new TimeSpan(0, 0, 45);
dispTimer.Start();
private void dispTimer_Tick(object sender, EventArgs e)
{
BackgroundWorker _worker = new BackgroundWorker();
_worker.DoWork += DoWork;
_worker.RunWorkerAsync();
}
private void DoWork(object sender, DoWorkEventArgs e)
{
Dispatcher.CurrentDispatcher.BeginInvoke( new Action(()=>
{
PartialEmployees.Clear();
}));
}
但是UI没有任何反应。我错过了什么/做错了什么?