我在顯示一個動畫,而我的控件正在加載數據。當線程結束時,我隱藏動畫並顯示控件。有時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