Я пытаюсь узнать, как использовать фоновых работников для моего проекта, но я продолжаю получать ошибку, и я просто не могу понять, что делать. Внутри дизайнера я создал backgroundWorker1 и кнопку.Ошибка повторного использования рабочего фонаря C#
private void btnNewSchedule_Click(object sender, EventArgs e)
{
BackgroundWorker bw = new BackgroundWorker();
bw = backgroundWorker1;
Scheduletest(bw);
}
private void Scheduletest(BackgroundWorker bw)
{
//junk code
//do the expensive coding part now
bw.RunWorkerAsync();
}
Когда я нажимаю на кнопку, чтобы запустить рабочий один раз, он отлично работает, но на второй клик, я получаю ошибку «Эта операция уже была OperationCompleted призвал его и далее призывает незаконны»
Я читал, что я должен каждый раз создавать новый экземпляр рабочего стола, и это то, что я пытался сделать с фоновой работой bw, но я предполагаю, что эта часть неверна. Может кто-то, пожалуйста, помогите мне, чтобы иметь возможность повторно использовать эту кнопку?
Большое спасибо
Вы не можете повторно использовать такого работника фона, как только состояние переходит к «завершенному», это «сделано». –
Вы собираетесь создавать новый поток BackgroundWorker каждый раз, когда пользователь нажимает кнопку? Или вам нужен только один поток и отключить кнопку во время ее выполнения? –
@GrantWinney Я пытаюсь дать. Я читаю, что это правильный способ выполнить мою задачу. Честно говоря, я просто пытаюсь нажать кнопку и работать каждый раз. Что бы я ни делал для этого, это, в конечном счете, моя цель. Открыта для альтернатив. – metinoheat