Проблема Я использовал проект из https://github.com/zaagan/BioMetrix и хочу использовать BackgroundWorker для отображения последовательности выполнения длинных задач (например: получение данных журнала занимает около 30 секунд)
Что я сделал до сих пор 1- Добавлен backgroundWorker1 из Toolbox 2 - После InitializeComponent () я добавил:
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.WorkerSupportsCancellation = true;
3 - Добавлены эти функции:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
for (int i = 1; i <= 10; i++)
{
if (worker.CancellationPending == true)
{
e.Cancel = true;
break;
}
else
{
System.Threading.Thread.Sleep(500);
worker.ReportProgress(i * 10);
}
}
}
private void backgroundWorker1_ProgressChanged(object sender,
ProgressChangedEventArgs e)
{
this.Text = (e.ProgressPercentage.ToString() + "%");
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled == true)
{
this.Text = "Canceled!";
}
else if (e.Error != null)
{
this.Text = "Error: " + e.Error.Message;
}
else
{
this.Text = "Done!";
}
}
Я ожидал увидеть процент прогрессии по основному тексту заголовка подписи при получении данных журнала с устройства.