0

私はc#を使用してWindowsアプリケーションでプログラミングしています。

this.close(); を使用してアプリケーションを閉じたい

アプリケーション ウィンドウが閉じていますが、そのアプリケーション ファイルを削除しようとすると、「別のプロセスで使用されているファイル」と表示されます。

注:私はそのアプリケーションでbackgroundrunnerも使用しています。上記の問題に問題がある場合は?

4

3 に答える 3

1

を使用するthis.Close()と、ウィンドウ フォームは閉じられますが、アプリケーションは閉じられません。

アプリケーションで発行したバックグラウンド ランナーは、フォームを明示的に閉じても、引き続きバックグラウンドで実行されます。それがあなたがメッセージを受け取っている理由です。

また、アプリケーションを閉じる前に、バックグラウンド ワーカーがプロセスでビジー状態であるかどうかを確認し、適切に処理してリクエストを終了/完了する必要がある場合もあります。Application.Exitフォアグラウンド スレッドは終了し続けますが、バックグラウンド スレッドは終了しません。

于 2013-03-28T06:09:05.913 に答える
1

Application.Exitを使用してアプリケーションを閉じてみてください。

すべてのメッセージ ポンプに終了する必要があることを通知し、メッセージが処理された後にすべてのアプリケーション ウィンドウを閉じます。

于 2013-03-28T05:52:26.750 に答える
1

メイン メソッドを終了する前に、この関数を呼び出してみてください。

workerThread はバックグラウンド ワーカーです

public void Abort()
{
    if (workerThread != null)
    {
        workerThread.Abort();
        workerThread = null;
    }
}
于 2013-03-28T07:32:54.993 に答える