【发布时间】:2023-03-03 02:23:01
【问题描述】:
下面是我的代码:
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中的编码吗?
我的编码有问题吗?
【问题讨论】:
标签: c#