我从Visual Basic启动外部应用程序以执行CPU和内存密集型计算。代码或多或少如下所示:
gApp = New CANoe.ApplicationgApp = New CANoe.Application
While gApp Is Nothing 'wait until CANoe started
Threading.Thread.Sleep(100)
End While
gApp.Open(canoeConfigFile, False, False)
gApp.Configuration.OfflineSetup.Source = dataFile
gMeasurement.Start()
While (gMeasurement.Running)
Threading.Thread.Sleep(1000)
End While
gApp.Quit()
是否可以将上述代码封装到流程中?我很想找到类似的东西:
Dim canoeProcess As New Process
canoeProcess.StartInfo.FileName = "C:\Program Files (x86)\Vector CANoe 8.1\Exec32\CANoe32.exe"
canoeProcess.Start()
gApp = canoeProcess.Application
...
' (the code continues as the above)
...
我想将应用程序包含在进程中的原因是(i)我想用不同的dataFiles作为作业运行可执行文件的多个实例,以及(ii)如果独木舟软件挂起或做了一些奇怪的事情我我希望能够从VB应用程序中删除该进程。
有可能实现相反的目标吗?即,给gApp Application对象(正在运行)以获取其进程ID?
有任何意见吗?
答案 0 :(得分:0)
我相信答案是不可能的。我通过Windows COM接口请求资源并将其封装到进程中甚至可能是不可能的(可能根本不存在进程)