none
Alterar um controle na thread principal atraves de uma thread secundaria RRS feed

  • Pergunta

  • Programo em vb.net e é o seguinte:

     

    Tenho uma thread principal que eh o form inicial do programa, neste form tem um listbox e um botao.

    Este botao chama uma thread q direciona para uma classe(a do codigo acima do post) q vamos chamar de thread1 e dentro dessa classe é criado uma outra thread q tbem direciona para outra classe(a classe Terminal) q vamos chamar de thread2.

     

    entao dentro da classe da thread2 eu preciso adicionar um item ao listbox da thread principal, e a mesma coisa eu preciso fazer na thread1.

     

    simplesmente se eu faço algo como:

    frmMain.Listbox.itens.add("teste")

    dentro de qquer thread secundaria nada acontece.

     

    se eu instancio o formulario principal num modulo e depois chamo ele atraves do Sub Main e dentro das thread1 ou 2 eu tento adicionar um item ao listbox me da uma msg de erro falando que eu nao posso adicionar item q esta em outra thread q nao seja a atual.

     

    Eu ja li varias paginas na net falando sobre multthreading e etc mas nao achei um exemplo pratico ou algo q realmente me esclareça como funciona o acesso a outras thread em execuçao e inclusive a thread principal do programa.

     

    A estrutura seria assim:

     

    frmMain (form com um Listbox)

          |

          -------------------------> Thread1(uma classe)

                                               |

                                               -------------------------------> Thread2(uma classe)

     

    Operaçoes necessarias:

    1► Na Thread1 adicionar um item ao Listbox(frmMain)

    2► Na Thread2 adicionar um item ao Listbox(frmMain)

    3► Na Thread2 alterar valores de variaveis na Thread1

     

     

    Se alguem puder me exclarecer eu ficaria agradecido.

     

    Abraços

    Alexsandro Nunes

    quinta-feira, 4 de setembro de 2008 13:58

Respostas

Todas as Respostas