我需要从 Windows 中删除正在运行的应用程序。我用进程名杀死了所有进程。立即删除时,我收到了一些错误消息。但是在延迟任务 3 秒后,应用程序被删除没有任何问题。
谁能解释为什么会这样?
foreach (var process in Process.GetProcessesByName(appName))
{
process.Kill();
}
System.Threading.Tasks.Task.Delay(1000 * 3).Wait(); // if we try to delete directly after killing process then error occurs
System.IO.Directory.Delete(sourceFolder, true);
Run Code Online (Sandbox Code Playgroud)
ang*_*son 10
之所以发生这种情况,是因为它的设计行为是这样的:
笔记
Kill 方法异步执行。调用该
Kill方法后,调用该WaitForExit方法等待进程退出,或者检查HasExited属性判断进程是否退出。