gpt4 book ai didi

vb.net - 如何有选择地与程序的两个实例通信?

转载 作者:行者123 更新时间:2023-12-02 03:44:51 25 4
gpt4 key购买 nike

我是 VB 的新手,如果这是一个简单的问题,请原谅我。

我将在一个程序中运行多个耗时(单线程)进程(允许通过 COM 实现自动化)。因此,为了节省一些时间,我想打开该程序的两个或多个实例并同时运行它们。但是我尝试在程序上做的任何事情,都会发生在第一个打开的程序上。这就是我的目的,我的意图是打开程序的两个实例(正确执行),并在每个实例中打开一个新文档(它所做的是在 myProcess0 中打开两个新文档,而在 myProcess1 中没有打开。注意: 我激活了 System.Diagnostics 命名空间。

    Using myProcess0 As Process = Process.Start(programPath)
myProcess0.WaitForInputIdle()
pws0 = New COMprogram.Document
End Using

Using myProcess1 As Process = Process.Start(programPath)
myProcess1.WaitForInputIdle()
pws1 = New COMprogram.Document
End Using

注意:COM 程序不允许为程序创建句柄(就像 Matlab 允许使用 MLApp.MLApp)

任何帮助将不胜感激!提前致谢!

最佳答案

这不完全是解决方案,而是我目前的“粗暴”解决方法。如果您的迭代彼此独立并且希望在同一台计算机上使用程序的多个实例来执行这些迭代(但出于某种我不知道的原因,创建的任何“应用程序”对象仅指向第一个应用程序实例)。

我正在做的是通过使用“桌面”来欺骗代码:http://technet.microsoft.com/en-us/sysinternals/cc817881.aspx

我只是在每个桌面上打开 VB 代码和一个应用程序实例,由于某种原因,VB 代码只与在当前桌面上打开的应用程序交互,而不与其他桌面上打开的应用程序交互。 Matlab 也会以某种方式发生这种情况。出于某种原因,所有 Matlab Application 对象都引用第一个实例。

关于vb.net - 如何有选择地与程序的两个实例通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17726019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com