2017-04-09 132 views
0

我正在试图在点击停止按钮时关闭程序。带停止按钮的结束程序

我正在使用后台工作,但每当我点击停止,窗体挂起,然后我得到一个错误,说:“在WebDriver.dll中发生类型'OpenQA.Selenium.WebDriverException'的异常,但没有在用户处理代码”

我停止按钮点击代码

private void button2_Click(object sender, EventArgs e) 
    { 
     if (backgroundWorker1.WorkerSupportsCancellation) 
     { 
      backgroundWorker1.CancelAsync(); 
     } 
     Application.Exit(); 
     driverGC.Quit(); 
    } 

的RunWorkerCompleted是:

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
    { 
     if (e.Cancelled) 
     { 
      MessageBox.Show("You've cancelled the backgroundworker!"); 
     } 
     else if (e.Error != null) 
     { 
      MessageBox.Show("Error:" + e.Error.Message); 
     } 
     else 
     { 
      MessageBox.Show("Done!"); 
     } 
    } 

是的,我有它支持取消。有什么想法吗?

+0

您的代码看起来不错。在backgroundWorker1.CancelAsync();后面加上'backgroundWorker1.Dispose();'。我认为这个例外是由于'driverGC.Quit();'这一行。那么请告诉我什么是'driverGC'? – mmushtaq

+0

driverGC只是我的webdriver的名称。但我会尝试backgroundWork1.Dispose(),看看是否有帮助。 –

回答

0

你试过:

this.Application.Close(); 
+0

我没有应用程序的选项?它不显示绿色,当我使用this.Application.Close(),但如果我做Application.Exit()它是绿色的。 –

+0

尝试,也许它会给你一个提示。 –

+0

我已经使用Application.Exit(),但问题是当我点击停止按钮,程序挂起,我得到一个错误,因为该程序仍在尝试运行,但驱动程序已关闭。 –