首页 > 解决方案 > 在同步锁中执行批处理文件以等待它的内部进程在 vb.net 中完成

问题描述

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

如果执行下一步,我的过程将被破坏,因为是创建一个文本文件,下一步是在数据库中上传mysql

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

我的代码是:

Dim myLock As Object

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

delay(350)

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

标签: vb.netbatch-file

解决方案


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

您可以使用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事件。


推荐阅读