Threads enviar dados

30/08/2011

0

Bom dia,
Estou iniciando no forum e na parte de C#. Estou tentando montar uma execução de duas threads que possam controlar um mesmo recurso ao mesmo tempo, em outras palavras, montei um form com dois campos de textbox e acionei as Threads. Quando a primeira thread acessa os textbox's ela coloca um dado EX: 1 e quando a segunda thead acessa os textbox's ela coloca outro valor Ex. 0.
Infelizmente apesar dos acessos serem em momentos diferentes mas sequencial (um acessa e depois o outro) estou com problemas para conseguir realizar o processo. Os problemas variam desde erro de acesso de objeto não criado na thead a não mostrar o valor. Bom abaixo segue o código, se alguem puder dar uma ajuda, ja estou a alguns dias em cima deste contexto. 

Obrigado.
Fábio Petry

Fábio Petry

Responder

Posts

08/09/2011

Ricardo Silva

Olá Fabio,
Está certo uma thread não pode acessar diretamente um Objeto a qual ela não enxergue, para isso você deverá utilizar os 'Delegates' ou então pode usar o 'MethodInvoker'.
1. if(textBox1.InvokeRequired) {2. textBox1.BeginInvoke((MethodInvoker)delegate {3.        textBox1.Text = "0";4.     });5. }
a Linha um verifica se a thread tem permissão de acessar o objeto textBox1;a lionha 2 cria um delegate invocado pelo objeto textBox1;a linha 3 muda o texto do objeto textBox1 de forma paralela a thread;
PS ao trabalhar com mais de uma Thread sugiro que leia sobre 'Semáfaro', 'Lock', etc
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar