web-dev-qa-db-ja.com

終了タスクには、終了プロセスに比べてどのような利点がありますか?

私の知る限り、アプリ(またはフリーズしたアプリ)を停止するたびに、タスクマネージャーに移動し、アプリGo to Processを選択して、プロセスを終了します。 「終了プロセス」は「終了タスク」よりも優先されます(「終了タスク」が機能しない場合もあります)。

終了タスクの画像:

enter image description here

終了プロセスの画像:

enter image description here

ただし、 http://technet.Microsoft.com/en-us/library/bb726964.aspx

プロセスを調べるとき、アプリケーションにはメインプロセスがありますが、1つのアプリケーションが複数のプロセスを開始する場合があることに注意してください。通常、これらのプロセスはメインアプリケーションプロセスに依存しており、メインアプリケーションプロセスを終了するか、タスクの終了を使用すると停止します。このため、通常は、依存プロセスではなく、メインアプリケーションプロセスまたはアプリケーション自体を終了する必要があります。

アプリを停止するとプロセスが停止するため、「タスクの終了」を優先すると言われています。しかし、私は彼らの論理をまったく理解していません。代わりに単にプロセスを停止してみませんか?

Ending TaskEnding Processに比べてどのような利点がありますか?

9
Pacerier

少なくとも1つのウィンドウがあるプログラムの場合、タスクの終了は、 X 「閉じる」ボタン– _WM_CLOSE_メッセージをそのウィンドウに送信し、適切に閉じるように要求します。 (コンソールウィンドウの場合、同等のものは _CTRL_CLOSE_EVENT_ です。)プログラムは、ユーザーに変更の保存またはさまざまなクリーンアップタスクの実行を求めることができます。プロセスが準拠している場合、タスクマネージャーは数秒待機し、プロセスがまだ実行されている場合はプロセスの終了を続行します。

プロセスがフリーズするか、受信したウィンドウメッセージを処理しない場合は、もちろん、タスクの終了も閉じるボタンも機能しません。このような場合、Windowsは通常、プログラムを強制的に終了するように要求しますが、プログラムに応答するのに十分な時間を与えた後でのみです。

一方、End Processボタンは、タスクやウィンドウとは関係ありません。TerminateProcess()関数を呼び出し、Windowsはプロセスをすぐに破棄します。 、通知したり、クリーンアップする機会を与えたりすることなく。

(メモリなどのリソースは、プロセスが終了すると自動的に解放されますが、プログラムが作成した場合はさまざまな一時ファイルが残る可能性があります。もちろん、データの保存中にプロセスが終了すると、データが破損するリスクがあります。)

参照:

13
user1686

他の2つの回答は、whatが発生するという点で違いが何であるかをうまく説明していますが、howが発生するという点でどのように異なるかを概観するだけです。前者はプログラムを閉じるように指示し、後者はWindowsにkillプログラムを指示します。

例えとして、それは誰かに物を集めて部屋を出るように頼むことと、用心棒にすぐにそして強制的にそれらを追い出すように言うことの違いのようなものです。

2
Synetech

詳細:タスクの終了は、アプリを正常に閉じようとします。ハングしている場合は、「今すぐ終了」するオプションが表示されます。これにより、プロセスを強制終了するよりも2つの利点があります(ブルートフォースでプロセスを一掃するだけです)。

  1. windows Vista(およびそれ以降)に登録されているアプリのクラッシュリカバリを有効にします MSDNの簡単な説明
  2. エラーレポートの送信を許可します
1
Mark Sowul