taskkill 和 taskkill /f 的区别
Difference between taskkill and taskkill /f
在 Microsoft Technet 上,我读到 taskkill
有一个 /f
参数可以强制终止进程。我想知道这在内部做了什么,以了解此类操作的影响。
taskkill
(没有/f
)不会简单地向进程发送WM_CLOSE消息,否则我的应用程序会询问是否保存打开的文档。这让我假设它已经在 TerminateProcess (MSDN) 级别上运行。但是TerminateProcess
没有强制杀人的参数
那么,taskkill
和 taskkill /f
在内部做什么?
我阅读了相关问题Difference between C# Process.Kill() and Taskkill,但没有答案。
很可能 taskkill /f
使用 TerminateProcess
, where as taskkill
without /f
just posts a WM_QUIT 消息(而不是 WM_CLOSE)。文档说 TerminateProcess
无条件终止进程。
您可以尝试以下实验:
- 启动 notepad.exe 并在记事本中输入几个字符 window
- 键入
taskkill /f /im notepad.exe
。记事本将立即退出
现在这样做:
- 启动 notepad.exe 并在记事本中输入几个字符 window
- 键入
taskkill /im notepad.exe
。记事本不会立即退出,但会退出询问是否要保存修改。
在 Microsoft Technet 上,我读到 taskkill
有一个 /f
参数可以强制终止进程。我想知道这在内部做了什么,以了解此类操作的影响。
taskkill
(没有/f
)不会简单地向进程发送WM_CLOSE消息,否则我的应用程序会询问是否保存打开的文档。这让我假设它已经在 TerminateProcess (MSDN) 级别上运行。但是TerminateProcess
没有强制杀人的参数
那么,taskkill
和 taskkill /f
在内部做什么?
我阅读了相关问题Difference between C# Process.Kill() and Taskkill,但没有答案。
很可能 taskkill /f
使用 TerminateProcess
, where as taskkill
without /f
just posts a WM_QUIT 消息(而不是 WM_CLOSE)。文档说 TerminateProcess
无条件终止进程。
您可以尝试以下实验:
- 启动 notepad.exe 并在记事本中输入几个字符 window
- 键入
taskkill /f /im notepad.exe
。记事本将立即退出
现在这样做:
- 启动 notepad.exe 并在记事本中输入几个字符 window
- 键入
taskkill /im notepad.exe
。记事本不会立即退出,但会退出询问是否要保存修改。