1. 程式人生 > >.net 在創建窗口句柄之前,不能在控件上調用 Invoke 或 BeginInvoke。

.net 在創建窗口句柄之前,不能在控件上調用 Invoke 或 BeginInvoke。

使用 ole ted 線程 他能 啟動 用法 cat som

窗體句柄的創建

窗口創建時,窗口並沒有創建句柄,只有Application.Run(form)或者form.Show()之後才有句柄,即窗口只有顯示或者啟動消息循環後才有句柄!如果創建form之後,主線程中調用form.Handler,如果句柄尚未創建,引用該屬性將強制創建句柄,對習哦他能夠內的邏輯將產生致命的影響。


IsHandlerCreated屬性 通過IsHandlerCreated判斷句柄是否創建成功,進而考慮是否使用委托方法跨線程操作。常規用法如下: if(this.IshandlerCreated) { this.Invoke((MethodInvoker)delegate
{ DoSomething(); }); } else { DoSomething(); }
外部鏈接
--- Lan ([email protected])

.net 在創建窗口句柄之前,不能在控件上調用 Invoke 或 BeginInvoke。