2017-04-09 10 views
0

停止ボタンをクリックすると、プログラムを終了しようとしています。停止ボタン付き終了プログラム

私はバックグラウンドワーカーを使用していますが、停止をクリックするとフォームがハングし、「OpenQA.Selenium.WebDriverExceptionタイプの例外がWebDriver.dllで発生しましたが、ユーザーでは処理されませんでしたコード」

私の停止ボタンをクリックコード

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()を使用していますが、問題は停止ボタンをクリックするとプログラムがハングし、プログラムがまだ実行しようとしているのにドライバが終了しているためエラーが発生します。 –

関連する問題