«System.InvalidOperationException: объект в настоящее время используется в другом месте» - как мне решить эту проблему? - PullRequest
4 голосов
/ 29 октября 2008

Я получил эту ошибку при попытке обновить изображение. Это было многопоточное обновление, но я использовал .Invoke (), так что это не должно быть проблемой, если это так.

Ответы [ 2 ]

6 голосов
/ 29 октября 2008

(отвечая на мой вопрос, для других и для дальнейшего использования)

Я думаю (пока не совсем уверен), что это потому, что InvokeRequired всегда будет возвращать false, если элемент управления еще не был загружен / показан Я сделал обходной путь, который, кажется, работает на данный момент, который должен просто ссылаться на дескриптор связанного элемента управления в его создателе, например так:

var x = this.Handle; 

(см. http://ikriv.com:8765/en/prog/info/dotnet/MysteriousHang.html - вниз? кэшированная версия )

(Смежный вопрос: Замена кода на котельной плите - есть ли что-нибудь плохое в этом коде? )

3 голосов
/ 29 октября 2008

Если дескриптор еще не существует, вы можете форсировать его, наследуя элемент управления и вызывая CreateHandle; однако, главный вопрос: почему вы делаете что-то с не загруженной формой? Лично я бы начал такую ​​операцию только после загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...