如题。
if (process.Responding)
可以通过这个属性来判断程序界面是否响应
但是有2种情况下,该方法无效:
1、当启动窗体的构造函数中发生阻塞或挂起时,启动窗体一直没有显示。
process.Responding还是为true. 只有process.MainWindowHandle是IntPtr.Zero. 这是程序异常了,但是和第二条冲突啦。
2、Application.Run(Form1);之前有些特殊处理,显示比如登陆窗口等……主窗口未显示。
process.Responding还是为true. process.MainWindowHandle也是IntPtr.Zero
这应该是正常情况。
bool ok = OnApplicationRunning();
if (ok)
{
OnApplicationRan();
Application.Run(Form1);
}
如果解决这些问题,望高手赐教!
参考我以前写的几篇文章,专门讲如果监视程序死循环,挂起,未捕获异常处理和内存监视的。
http://www.cnblogs.com/eaglet/category/206379.html