C#用户控制引发的问题

C#用户控制引发的问题,c#,user-controls,begininvoke,C#,User Controls,Begininvoke,我有一个C#用户控件,它有自己的后台工作线程。此工作线程在控件的构造函数中启动,并在释放控件时停止 线程使用委托周期性地调用BeginInvoke方法,但有时异常“在创建窗口句柄之前,无法对控件调用Invoke或BeginInvoke。”occoures 现在我问您,我如何检查是否可以从我的工作线程调用BeginInvoke,以便在控件未完全创建的情况下不进行调用 此问题仅在编译版本时出现。未处于调试模式 非常感谢工作线程应该在。。。(您有两种选择): Control.HandleCreated

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

线程使用委托周期性地调用BeginInvoke方法,但有时异常“在创建窗口句柄之前,无法对控件调用Invoke或BeginInvoke。”occoures

现在我问您,我如何检查是否可以从我的工作线程调用BeginInvoke,以便在控件未完全创建的情况下不进行调用

此问题仅在编译版本时出现。未处于调试模式


非常感谢

工作线程应该在。。。(您有两种选择):

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

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

    将尝试此操作。谢谢编辑:似乎有效。我现在在HandleCreated事件发生时启动线程,在HandleDestroyed事件触发时停止线程。