C# UserControl BeginInvoke Проблема
У меня есть пользовательский элемент управления C#, который имеет свой собственный фоновый рабочий поток. Этот рабочий поток запускается в конструкторе элемента управления и останавливается при удалении элемента управления.
Поток периодически вызывает метод BeginInvoke с делегатом, но иногда возникает исключение "Invoke или BeginInvoke не могут быть вызваны для элемента управления, пока не будет создан дескриптор окна". occoures.
Теперь я спрашиваю вас, как я могу проверить, возможен ли вызов BeginInvoke из моего рабочего потока, чтобы он не вызывал, пока элемент управления не создан полностью?
Эта проблема возникает только при компиляции релиза. Не в режиме отладки.
с наилучшими пожеланиями
1 ответ
Рабочий поток должен быть создан внутри... (у вас есть два варианта):
- Обработчик события Control.HandleCreated
- Переопределяющий элемент управления. OnHandleCreated
Что вам нужно знать, так это то, что элемент управления не может быть полностью создан (готов к использованию) даже после завершения выполнения конструктора.