下面是我的编码:
Form2 msgForm;
private void button3_Click_1(object sender, EventArgs e)
{
bw.WorkerReportsProgress = true;
bw.WorkerSupportsCancellation = true;
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
msgForm = new Form2();
try
{
bw.RunWorkerAsync();
msgForm.ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
void bw_DoWork(object sender, DoWorkEventArgs e)
{
// Coding that transmit protocol and will last around 2 minutes.
}
void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
msgForm.Close();
}
每次单击按钮以传输持续约 2 分钟的协议时,我都会使用后台工作程序方法。在传输过程中,From2 将显示“请稍候”。
但是我在使用这种编码时遇到了一些问题。问题是,当我第一次单击按钮时,它会传输一次协议。之后我再次单击,这是第二次,它传输了两次协议。之后我再次点击,这是第三次,它传输协议3次......等等。每次单击按钮时,传输协议的次数都会增加。
每次我单击按钮时,它不是只会运行一次 void bw_DoWork 中的编码吗?
我的编码有问题吗?