Как вы создаете / вызываете свой фоновый рабочий поток.Вы должны делать что-то вроде ... (а это C #, а не VB)
// This would be a method in your form...
private void CallBackgroundWorker()
{
YourBackgroundWorkerClass BGW = new YourBackgroundWorkerClass();
BGW.WorkerReportsProgress = true;
BGW.ProgressChanged += MyFormsBGW_ProgressChanged;
BGW.RunWorkerAsync();
}
// this would be in your form too... to get feedback from worker to
// let the form's interface/control update itself
protected void MyFormsBGW_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.SomeButton.Text = "whatever";
}
Затем, где-нибудь в фоновом режиме, просто вызовите ReportProgress () ... значение может бытьпочти все, даже если представляет процент, например ReportProgress (100).Это заставит перезвонить непосредственно в поток FORM (в потоке пользовательского интерфейса), позволить ему обновить то, что ему нужно, и затем вернуться к фоновому рабочему, чтобы продолжить.