Use the capabilities already built into the BackgroundWorker
. When you "report progress", it sends your data to the ProgressChanged
event, which runs on the UI thread. No need to call Invoke()
.
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
bgWorker.ReportProgress(0, "Some message to display.");
}
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
status.Content = e.UserState.ToString();
}
Make sure you set bgWorker.WorkerReportsProgress = true
to enable reporting progress.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…