Я получил эту ошибку при попытке обновить изображение. Это было многопоточное обновление, но я использовал .Invoke (), так что это не должно быть проблемой, если это так.
(отвечая на мой вопрос, для других и для дальнейшего использования)
Я думаю (пока не совсем уверен), что это потому, что InvokeRequired всегда будет возвращать false, если элемент управления еще не был загружен / показан Я сделал обходной путь, который, кажется, работает на данный момент, который должен просто ссылаться на дескриптор связанного элемента управления в его создателе, например так:
var x = this.Handle;
(см. http://ikriv.com:8765/en/prog/info/dotnet/MysteriousHang.html - вниз? кэшированная версия )
(Смежный вопрос: Замена кода на котельной плите - есть ли что-нибудь плохое в этом коде? )
Если дескриптор еще не существует, вы можете форсировать его, наследуя элемент управления и вызывая CreateHandle; однако, главный вопрос: почему вы делаете что-то с не загруженной формой? Лично я бы начал такую операцию только после загрузки.
CreateHandle