// Это мой кодОшибка при использовании BackgroundWorker
private void btnGenSumm_Click(object sender, EventArgs e)
{
if (backgroundWorker1.IsBusy != true)
{
btnGenSumm.Enabled = false;
btnExpSum.Enabled = false;
btnClose.Enabled = false;
pBox1.Visible = true;
backgroundWorker1.RunWorkerAsync();
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
loadSummSales(); // this is the process
System.Threading.Thread.Sleep(50);
}
private void backgroundWorker1_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{
pBox1.Visible = false;
}
Там нет ошибки в выполнении процесса на первом щелчке, но еще раз, когда я пытаюсь нажать кнопку управления (btnGenSumm), чтобы повторить процесс, я получил ошибку "значение dispose не может быть вызвано при создании handhandle"., Пожалуйста, помогите мне с этим.
* Где * вы получите исключение? (Кроме того, приложите больше усилий для форматирования вашего вопроса - ваш код повсюду.) –
protected override void Dispose (bool disposing) { if (disposing && (components! = Null)) { components.Dispose(); } base.Dispose (распоряжение); } –
Я думаю, что проблема не с Фоновым работником, это может быть проблема внутри вашей логики loadSummSales(). для проверки комментария loadSummSales() и попробуйте – Lingaraj