在synlock中执行一个批处理文件,等待其内部进程在vb.net中完成



我需要在vb.Net中的模块中执行批处理文件,但问题是我执行相同的文件,如果完成或不完成,程序将执行下一步。

如果执行下一步,我的过程就中断了,因为这是一个创建文本文件的过程,下一步是在数据库mysql中上传。

我尝试在synlock中执行,没有任何区别,如何使用synlock来完成批处理文件的执行。

我的代码是:

Dim myLock As Object
synlock myLock
Dim pProces As Process = Process.Start(psi)
End synlock
delay(350)

PS:延迟是对线程等待的重命名,进程在等待中继续,但我需要知道它何时完成执行批处理文件。

如果我完全理解您的问题,那么您需要等待批处理文件完成执行,然后再转到代码的下一部分。

您可以使用process.HasExited来等待进程完成。

Dim pProces As Process = Process.Start(psi)
While Not pProces.HasExited
System.Windows.Forms.Application.DoEvents ' if this is a windows form or console app
End While
If pProces.ExitCode = 0 Then
' Continue your next step here
Else
' Error occured while running the batch file 
End If

您可以使用Process.Exited事件。

最新更新