我有一个C#用户控件,它具有自己的后台工作线程。该工作线程在控件的构造函数中启动,在处理控件时停止。

该线程定期使用委托调用BeginInvoke-Method,但是有时会出现异常“在创建窗口句柄之前无法在控件上调用Invoke或BeginInvoke”。占地。

现在,我问你,如果控件没有完全创建,如何检查是否可以从工作线程调用BeginInvoke而不进行调用?

仅在编译发行版时出现此问题。不在调试模式下。

最诚挚的问候

最佳答案

工作线程应该在内部创建...(您有两个选择):


Control.HandleCreated事件的处理程序
重写Control.OnHandleCreated


您需要知道的是,即使在构造函数执行完之后,控件也可能无法完全创建(准备使用)。

关于c# - C#UserControl BeginInvoke问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2050749/

10-11 23:40