0

C++ と .Net/WinForms に関して困惑しています。バックグラウンド ワーカーを起動して Web サーバーに対するユーザー入力をチェックするコードを作成しました。コードは次のとおりです。

    try {
        loginworker->RunWorkerAsync();                       
    }
    catch(System::InvalidOperationException^) {}

ここで、プログラムを実行してログイン ボタンを数回クリックすると (「バックグラウンド ワーカーは既にタスクを実行しています」というエラーが発生します)、そのコード行で未処理の System::InvalidOperationException が発生します。私がここに欠けているものはありますか?

コードの実行がバックグラウンド ワーカーで完了するまでログイン ボタンを非表示にする方法でコードを既に作成しましたが、例外をキャッチすべきではありませんか?

コリン

4

1 に答える 1

1

すべての例外で中断するようにデバッガーを設定していますか? RunWorkerAsync 行を に置き換えてthrow gcnew InvalidOperationException();、ボタンを 1 回クリックするとどうなりますか?

于 2012-07-25T20:49:24.170 に答える