首页 新闻 会员 周边 捐助

thread 窗体未响应

0
悬赏园豆:20 [已解决问题] 解决于 2014-12-10 21:37

我在程序主窗体中new了两个子窗体(一个是项目中以前就有的窗体,一个是我新建的窗体),然后在一个类中的下面方法分别调用执行这两个窗体的委托。为什么一个窗体的 c.InvokeRequired是true,我新建的那个窗体的 c.InvokeRequired则是false呢。并且我新建的这个窗体在执行这个方法显示窗体未响应。

public void InvokeEvents(Delegate Event, params object[] args)
{

if (Event != null)
{
Delegate[] events = Event.GetInvocationList();

foreach (Delegate d in events)
{
System.Windows.Forms.Control c = d.Target as System.Windows.Forms.Control;

if (c != null && c.InvokeRequired)
{
//如果主窗口正在关闭,则不触发事件
try
{
if (c.Disposing == true)
continue;
c.Invoke(d, args);
}
catch(Exception ex)
{
ex = new Exception(d.Target.ToString());
HJCommon.Helper.ExceptionHelper.Instance.WriteEmailLog(ex, false, "");
HJCommon.WriteLog.Instance.AppendErrorLog(ex.ToString());
}

}
else
{
try
{
d.DynamicInvoke(args);
}
catch (System.Exception err)
{
HJCommon.Helper.ExceptionHelper.Instance.WriteConsoleLog("发生一次异步调用错误!" + err.ToString());
HJCommon.WriteLog.Instance.AppendErrorLog(err.ToString());
}
}
}
}

}

末流的主页 末流 | 初学一级 | 园豆:24
提问于:2014-03-11 15:11
< >
分享
最佳答案
0

你这样是为了得到一个什么样的效果

收获园豆:20
幕三少 | 小虾三级 |园豆:1384 | 2014-03-12 08:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册