我有一个C#用户控件,它具有自己的后台工作线程。该工作线程在控件的构造函数中启动,在处理控件时停止。
该线程定期使用委托调用BeginInvoke-Method,但是有时会出现异常“在创建窗口句柄之前无法在控件上调用Invoke或BeginInvoke”。占地。
现在,我问你,如果控件没有完全创建,如何检查是否可以从工作线程调用BeginInvoke而不进行调用?
仅在编译发行版时出现此问题。不在调试模式下。
最诚挚的问候
最佳答案
工作线程应该在内部创建...(您有两个选择):
Control.HandleCreated事件的处理程序
重写Control.OnHandleCreated
您需要知道的是,即使在构造函数执行完之后,控件也可能无法完全创建(准备使用)。
关于c# - C#UserControl BeginInvoke问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2050749/