0
我读了一些关于MainWindowHandle的线程,但我无法找到解决方案,我开始一个GUI应用程序,并希望通过过程对象获得MainWindowHandle,但句柄值始终为零如果我不打算用thread.sleep()等待gui加载。我也尝试使用WaitForInputIdle,但它根本没有帮助。c#MainWindowHandle始终为零
process.Start();
process.WaitForInputIdle(1000);
while (process.MainWindowHandle == IntPtr.Zero)
{
Thread.Sleep(100);
}
// do something with the handle
他从来没有离开一会儿,如果我有一个正常的Thread.Sleep他得到手柄右侧更换waitforinputidle。
把它在简单的话:我只想继续我的代码,如果我得到一个句柄=零,但我不希望等待一个静态的时间,这
这就是解决方案,谢谢。但waitforinputidle扮演的角色如何?阅读msdn:http://msdn.microsoft.com/en-us/library/system.diagnostics.process.mainwindowhandle.aspx它应该帮助处理“未准备好”的问题 – dontcare 2012-04-11 08:45:03
@dontcare,它不完全清楚我WaitInputIdle()实际上是多么有效。我们只能关闭该方法的文档告诉我们的东西 - 也就是说,它会阻止,直到孩子处于空闲状态。这导致人们相信闲置意味着孩子有一个“MainWindowHandle”,但是,正如你从这种方法的原始遭遇中所看到的,这并不完全准确。 – Tung 2012-04-11 09:05:59