我编写了一个C#程序来通过backgndWorkerEnroll_DoWork调用一个函数。它将从一个显示的事件开始。
另一方面,我有一个按钮点击事件。当该事件发生时,我调用一个函数,它返回成功,我想关闭后台工作。
我怎样才能做到这一点?
我的代码如下。
private void PwdCheck_Shown(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void btnEnter_Click(object sender, EventArgs e)
{
resPwdValid = PwdValid();
if (resPwdValid == true)
{
//backgroundWorker1.CancelAsync();
this.Close();
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
tstVerify:
resVerify = testVerfy();
if (resVerify == true)
{
// MessageBox.Show("Matched");
}
else
{
MessageBox.Show("Not Matched");
goto tstVerify;
}
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (resVerify == true)
{
this.Close();
}
}
如何在btnenter_click respwdvalid返回true后关闭backgroundrunner?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以致电BackgroundWorker.CancelAsync()
我相信(您似乎已将其评论出来),然后在您的DoWork
代码中,您应该继续检查BackgroundWorker1.CancellationPending
并提前退出后台主题。