ALTERAR PROPRIEDADE DE OUTRA THREAD.

 Tópico anterior Próximo tópico Novo tópico

ALTERAR PROPRIEDADE DE OUTRA THREAD.

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#495512 - 28/10/2020 21:01:08

NOWLIGHTS
SUMARE
Cadast. em:Abril/2011


Boa noite!

Pessoal, desenvolvi um app mobile com Xamarin, que resumidamente se comunica, através de bluetooth, com um chip; ao qual envia e recebe informações (byte).

Uso um Plugin para a comunicação multiplataforma, e ele tem um método chamado ValueUpdate que é acionado quando o chip manda um byte pro app, até ai tudo ok! porém... se eu for tentar mudar o text de uma label dentro do ValueUpdate eu tenho o erro 'você está alterando uma thread ao qual não foi criado... (algo assim)'

consegui resolver no POG, criando uma propriedade estática e rodando um timer para saber toda hora que mudar o valor...

Como posso resolver isso? Vi algo sobre métodos Delegate, porém não entendi o objetivo

Desde já, obrigado!

__________________________________
- Everyone has a chance


#495513 - 28/10/2020 21:24:06

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Já tentou um evento?

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#495514 - 28/10/2020 21:29:53

NOWLIGHTS
SUMARE
Cadast. em:Abril/2011


Perdão, não entendi!?

__________________________________
- Everyone has a chance


#495515 - 28/10/2020 22:03:53

NOWLIGHTS
SUMARE
Cadast. em:Abril/2011


o erro: 'Android.Util.AndroidRuntimeException: 'Only the original thread that created a view hierarchy can touch its views.''

__________________________________
- Everyone has a chance


Resposta escolhida #495517 - 28/10/2020 23:06:04

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Talvez isso ajude

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#495518 - 29/10/2020 09:25:33

NOWLIGHTS
SUMARE
Cadast. em:Abril/2011


Última edição em 29/10/2020 09:25:54 por NOWLIGHTS

Resolveu o primeiro problema,

  MainThread.BeginInvokeOnMainThread(() =>
{
    // Código para alterar
});


Mas a estrutura é assim,

Tenho uma classe (BluetoothCon) ao qual tenho meus métodos para a comunicação com o dispositivo.

Dentro desses métodos, tenho um que é o ComunicationDevice, que identifico meu Serviço e a Caracteristica para a comunicação; dentro da Caracteristica tem uma propriedade/metodo (não sei o nome técnico rsrsrs) ValueUpdate que eu paço um método pra ele, ex.:


Caracteristica.ValueUpdate += UpdateComunication;

public void UpdateComunication(object sender, BluetoothEventArgs e)...


porém tudo na classe BluetoothCon, e esse método que passei (UpdateComunication) é chamado toda vez que o dispositivo bluetooth envia um byte, e a intenção é alterar o valor de uma label da minha View, só que, como faço essa comunicação da classe com a View, sendo um método chamado dentro da classe rsrsrs


__________________________________
- Everyone has a chance


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por NOWLIGHTS em 06/11/2020 16:02:29