2

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

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

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

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

最诚挚的问候

4

1 回答 1

4

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

  1. Control.HandleCreated 事件的处理程序
  2. 覆盖 Control.OnHandleCreated

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

于 2010-01-12T17:05:19.200 回答