如果我要在VB.NET中一个接一个地运行多个批处理文件,它们会同时运行还是等待第一批文件完成然后继续下一个?
答案 0 :(得分:3)
它们将同时运行,除非您不遗余力地防止这种情况发生。一旦启动进程,Process.Start()
就不会阻止。但是,您可以使用Process.WaitForExit()
阻止。
例如,这将同时运行3个批处理文件:
System.Diagnostics.Process.Start("batch.bat")
System.Diagnostics.Process.Start("batch.bat")
System.Diagnostics.Process.Start("batch.bat")
这将一次运行一个:
System.Diagnostics.Process.Start("batch.bat").WaitForExit()
System.Diagnostics.Process.Start("batch.bat").WaitForExit()
System.Diagnostics.Process.Start("batch.bat").WaitForExit()
通过将进程保存到变量并稍后在代码中调用WaitForExit()
,您可以更好地控制何时进行阻止:
Dim p1 = System.Diagnostics.Process.Start("batch.bat")
' Do stuff that doesn't need to wait for process to finish
p1.WaitForExit()
答案 1 :(得分:1)
他们会一起跑。如果要等待,请创建ProcessStartInfo对象,将其添加到Process.Start调用,并将Start方法的响应分配给进程。然后调用进程的WaitForExit方法。