web-dev-qa-db-ja.com

申請プロセスは終了しません

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'_ボタンからアプリケーションを閉じるとしたら、フォームの右上で、これはおそらくプロセスを強制終了しますか?

13
Ebikeneser

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

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

 enter image description here

enter image description here

 enter image description here

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

 enter image description here

ダブルクリックeachここに表示されるスレッド:

enter image description here

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

 enter image description here

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

47
Roman Starkov

Environment.Exit(0);

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

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

10
Robert Northard