vb.net - 在同步锁中执行批处理文件以等待它的内部进程在 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:延迟是对线程等待的重命名,进程在等待中继续,但我需要知道它何时完成执行批处理文件。
解决方案
如果我完全理解您的问题,您希望等待批处理文件完成执行,然后再转到代码的下一部分。
您可以使用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事件。
推荐阅读
- c++ - 如何避免嵌套模板中的重复模板参数
- sql - 如何在 SQL Server 的列中出现特定值
- javascript - 无法使用带有 load-google-maps-api-2 的 webpack 读取未定义的属性“自动完成”
- common-lisp - 只输出一个空行
- python - 使用 Z3Py 的相同约束集的不同运行时间
- angular - Angular + amazon-cognito-identity-js,为什么我收到错误:未定义全局
- batch-file - 编辑 WindowTitle 以供稍后在 bat 脚本中使用的方法?
- swift - 应用程序崩溃:在对 beginConfiguration 和 commitConfiguration 的调用之间可能不会调用 startRunning?
- amazon-web-services - [错误]:在当前配置文件中找不到 AWS 凭证。- 询问-cli
- mongodb - 如何访问/读取嵌套的 mongo 字段/元素