13

WPFアプリケーションがあります。アプリを閉じた後も、そのプロセスapp.exe *32はタスクマネージャーのプロセスリストで実行されています。

コードを編集すると次のエラーが発生するため、これを閉じる必要があります-

Unable to copy file "obj\x86\Release\frontEndTest.exe" to "bin\Release\app.exe". The process cannot access the file 'bin\Release\app.exe' because it is being used by another process.

私はこの種の質問がここの前に尋ねられたことを知っています。

Assembly.csしかし、私を-に変更しても、解決策は機能しませんでした。

[assembly: AssemblyVersion("2.0.0")]
[assembly: AssemblyFileVersion("2.0.0")]

ユーザーがフォームの右上にある赤いボタンからアプリケーションを閉じたときに、おそらくプロセスを強制終了するように、Window closedイベントを見つけて-のようなものをパッティングするとしたら、おそらくそうだと思いました。Process.GetCurrentProcess().Kill();'x'

4

2 に答える 2

47

したがって、プロセスをシャットダウンした後も、プロセスはまだ生きています。これは通常、それを存続させるスレッドがあることを意味します。追跡する方法は次のとおりです。

まず、デバッガーでアタッチします。

                                ここに画像の説明を入力してください

ここに画像の説明を入力してください

                                        ここに画像の説明を入力してください

次に、スレッドリストを開きます。

        ここに画像の説明を入力してください

ここに表示されている各スレッドをダブルクリックします。

ここに画像の説明を入力してください

そして、スレッドが現在行っていることに移動します。

                                ここに画像の説明を入力してください

それが、アプリのシャットダウンを妨げるものです。アプリを終了するには、そのループを終了する必要があります(または、に設定Thread.IsBackgroundtrueます)。

于 2012-06-20T11:40:24.747 に答える
10

Environment.Exit(0);

Terminates this process and gives the underlying operating system the specified exit code.    

正常に完了すると0が返されます。

于 2012-06-20T09:59:01.713 に答える