ПОПРОБУЙТЕ:
1.Добавьте следующее, используя: using System.ComponentModel;
2.Declare фоновый работник :
private readonly BackgroundWorker worker = new BackgroundWorker();
3.Регистрация событий:
worker.DoWork += worker_DoWork;
worker.RunWorkerCompleted += worker_RunWorkerCompleted;
4. Реализовать два метода:
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
// run all background tasks here
}
private void worker_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{
//update ui once worker complete his work
}
5.Разрешить асинхронизацию работника при необходимости.
worker.RunWorkerAsync();
Также, если вы хотите сообщить о прогрессе процесса, вы должны подписаться на событие ProgressChanged и использовать ReportProgress (Int32) в методе DoWork, чтобы вызвать событие.Также установите следующее: worker.WorkerReportsProgress = true;
Надеюсь, эта помощь.