我执行以下操作:
将可执行文件复制到
C:\temp\x.exe
启动可执行文件,然后通过调用返回的对象
System.Diagnostics.Process.Start
同步等待进程退出。WaitForExit
Process
Start
删除可执行文件
C:\temp\x.exe
在某些机器上,这很好用,但在其他机器上,调用DeleteFile
失败,因为该文件仍在使用中。所以似乎一旦WaitForExit
返回,并不意味着Windows已经完成了EXE。
我在这里有什么选择?DeleteFile
显而易见的一个可能是在几毫秒后再次尝试,在一个循环中,直到删除成功或循环超时。但是有没有更干净的方法来等待每个人都关闭文件?