“System.InvalidOperationException: O objeto está atualmente em uso em outros lugares” - como faço para resolver isso?

StackOverflow https://stackoverflow.com/questions/246058

  •  05-07-2019
  •  | 
  •  

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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top