我在显示一个动画,而我的控件正在加载数据。当线程结束时,我隐藏动画并显示控件。有时Control.Invoke()挂起应用程序
protected void InvokeEnableBackControl()
{
if (this.InvokeRequired)
{
this.Invoke(new OpHandler(EnableBackControl));
}
else
{
EnableBackControl();
}
}
,当我执行这个代码,主线程被下面的代码忌用:所以我从一个线程执行这段代码
protected virtual void EnableBackControl()
{
if (overlayAnimation.TargetControl != null)
{
overlayAnimation.TargetControl.BringToFront();
}
overlayAnimation.SendToBack();
overlayAnimation.Enabled = false;
overlayAnimation.Visible = false;
}
我米不知道是否被吊死设置Enable
或Visible
属性。你知道任何情况下,可能会从Control.Invoke
调用这些属性的应用程序吗?
有没有一个可识别的模式时,它挂起次? – 2011-02-25 15:50:08
@不,只有“有时”。烦人。 – 2011-02-25 16:15:29
记录它挂起的* exact *语句,发布堆栈跟踪。 – 2011-02-25 18:01:44