У меня есть метод ниже, который, кажется, ведет себя странно. ProgressChanged
и RunWorkerCompleted
, кажется, обновляются одновременно. Если я закомментирую код RunWorkerCompleted
, который обновляет текстовый блок, я вижу, что ProgressChanged
вступает в силу после передачи данных. Что я здесь не так делаю? Я, очевидно, хочу, чтобы текстовый блок показывал, что я получаю данные, а затем изменился, когда закончил получать данные.
public void GetAppointmentsBackground()
{
System.Windows.Threading.Dispatcher webServiceDispatcher = this.Dispatcher;
worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += delegate(object sender, DoWorkEventArgs args)
{
GetAppointmentsForDayDelegate getAppt = new GetAppointmentsForDayDelegate(GetAppointmentsForDay);
webServiceDispatcher.BeginInvoke(getAppt);
(sender as BackgroundWorker).ReportProgress(25);
};
worker.ProgressChanged += delegate(object s, ProgressChangedEventArgs args)
{
txtMessages.Text = "Contacting Server";
};
worker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
{
txtMessages.Text = "Completed Successfully";
};
worker.RunWorkerAsync();
}