BackgroundWorker mit Dispatcher scheint nicht, etwas zu tun

Ich versuche zu aktualisieren ObservableCollection ist, dass Daten an die Benutzeroberfläche. Ich weiß, dass dies zu tun muss ich verwenden Dispatcher und BeginvInvoke(), und es so zu machen, dass die UI nicht einfrieren, wenn ich so tun, mit einem BackgroundWorker ist ein guter Weg, um darüber zu gehen. In jedem Fall, ich habe all dies, kompiliert und ausgeführt, aber nichts passiert. Ich brauche für die Aktualisierung der Benutzeroberfläche, alle 2 Minuten oder so, also ich bin auch mit einem DispatcherTimer

Dies funktioniert, weil DispatcherTimer ist Teil der Dispatcher, aber friert das 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();          
}

So, mithilfe der BackgroundWorker-ich sammelte diese:

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();
        }));
} 

Aber nichts geschieht, um das UI. Das, was ich bin fehlt/nicht tun, richtig?

InformationsquelleAutor LobalOrning | 2010-11-17
Schreibe einen Kommentar