“System.InvalidOperationException: O objeto está atualmente em uso em outros lugares” - como faço para resolver isso?
Pergunta
Eu tenho esse erro ao tentar atualizar uma imagem. Era uma atualização cross-fio, mas eu usei .Invoke (), de modo que não deve ser o problema, deveria.
Solução
(Respondendo a minha própria pergunta, para os outros, e para referência futura)
I pensar (ainda não inteiramente certo) que isso é porque InvokeRequired sempre retornará false se o controle ainda não foi carregado / mostrado. Eu fiz uma solução que parece funcionar para o momento, que é a simples referência a alça do controle associado em seu criador, assim:
var x = this.Handle;
(Veja http://ikriv.com:8765/en /prog/info/dotnet/MysteriousHang.html -? para baixo versão em cache )
(Questão: substituição - está lá mau nada sobre este código )
?Outras dicas
Se a alça ainda não existe, você pode forçá-lo por subclasse o controle e chamando CreateHandle
; no entanto, a grande questão é: por que você está fazendo as coisas com uma forma que não foi carregado? Pessoalmente eu só ia começar uma operação deste tipo após Load.