1
private void button_uploadToPI_Click(object sender, RoutedEventArgs e)
{
this.newFilePath = this.textbox_input_filePath.Text;
this.label_status.Content = "";
if (bgWorker.IsBusy != true)
{
bgWorker.RunWorkerAsync();
}
}
여기 내 클릭 이벤트입니다.백그라운드 작업자가 doWork를 여러 번 실행합니다.
public MainWindow()
{
InitializeComponent();
this.progressBar.Minimum = 0;
this.progressBar.Maximum = 100;
this.bgWorker = new BackgroundWorker();
this.bgWorker.WorkerReportsProgress = true;
this.bgWorker.WorkerSupportsCancellation = true;
reader.IsOpen = false;
this.bgWorker.DoWork += bgWorker_DoWork;
this.bgWorker.ProgressChanged += bgWorker_ProgressChanged;
this.bgWorker.RunWorkerCompleted += bgWorker_RunWorkerCompleted;
}
주 창 방법.
public partial class MainWindow : Window
{
private BackgroundWorker bgWorker;
여기서 bgWorker가 초기화됩니다.
void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.progressBar.Value = 0;
this.label_progressPercentage.Content = "0%";
reportTextBox.ScrollToEnd();
}
RunWorkComplete 코드
주요 문제는 내가 한 번 응용 프로그램을 실행하면 예상대로 작동이다. 그런 다음 다시 클릭하면 메서드가 두 번 실행되고 다시 클릭하면 메서드가 3 번 실행됩니다. 새로운 클릭이 증가 할 때마다 증가 할 것입니다.
누구든지 주요 문제는 여기에서 볼 수 있습니까?
게시 된 코드에는 아무런 문제가 없습니다. BackgroundWorker에 대한 이벤트 처리기를 게시 할 수 있습니까? – Bridge
내 runworkcomplete 메소드에 대한 코드를 추가했습니다. – Andrew
"다시 클릭하십시오"라는 말은'button_uploadToPI'를 클릭 하시거나 폼 자체를 다시 보여 주시겠습니까? –