Process.WaitForInputIdle方法是否有助于我等待进程启动的目的?

时间:2014-01-22 06:43:51

标签: c# .net vb6

我们有一个exe应用程序(VB6)。这个应用程序由我们的.NET dll程序集(使用Process.Start)调用,它将用户名和密码作为参数传递给vb6应用程序。 VB6应用程序具有仅在执行登录代码后查找Windows消息的代码。

如果我这样做很好: -

CASE1:

Process.Start("file.exe", arguments);
Thread.Sleep(1000); //if I comment this line then the msg is never caught by the vb6 app
SendAWindowsMsg("hello");

CASE2:

var process = new Process
{
    StartInfo = new ProcessStartInfo
    {
        FileName = @"file.exe",
        Arguments = arguments
    }
};
process.Start();
process.WaitForInputIdle();
SendAWindowsMsg("hello");

我的问题是:案例1或案例2会更好吗? WaitForInputIdle是什么意思(什么是输入和空闲的东西?)?

1 个答案:

答案 0 :(得分:4)

  • 案例1 - 假设流程在1秒内完成加载。
  • 案例2 - 等待流程完成加载[绝对是要走的路]。

WaitForInputIdle函数的目的是确定另一个进程(最近启动的)是否已达到可以发送该进程消息的状态。< / p>

基本上WaitForInputIdle询问流程是否已完成加载。