嗨,IsHandledCreated設置爲false,但在運行時將其設置爲true?
我有一個Application.Exit期間拼命地跑下面的代碼:
if (InvokeRequired && this.IsHandleCreated)
{
this.Invoke(new Action(() => EndUpdate(Caller)));
return;
}
這引發異常:調用或BeginInvoke不能上一個控件調用,直到窗口句柄有已創建但僅在應用程序出現時。
奇怪的部分是,當調試器打破了錯誤,我可以看到,InvokeRequired和IsHandledCreated都設置爲false,所以即時通訊不知道它如何設法得到內部代碼(this.Invoke)?
在這種情況下,我只想關閉應用程序,沒有任何例外。
在if語句上放置一個斷點並查看錯誤之前的值。 – saj
@saj>我從來沒有聽說過如果出現錯誤,所以我認爲當它檢查InvokeRequired和IsHandleCreated時它會變爲True/True,但是另一個線程在Invoke運行之前更改此權限。 Maby我可以在Invoke方法中實現對IsHandleCreated的檢查,但它可能會導致同樣的問題。 – Banshee