Thread - quero fazer o metodo rodar em

1 resposta
H

olá,
To com dificuldades em enteder o uso das threads, se alguem tiver um exemplo de como fazer um metodo rodar em segundo plano pra mim olhar , pois tenho um metodo blocking (ServerSocket) e gostaria de deixalo em segundo plano para o usuár o poder executar outras tarefas no gui

grato

1 Resposta

H

Você fala em GUI, então eu deduzo que a sua é uma aplicação Swing. Neste caso o loop para receber as conexões pode ser colocado logo após a criação dos componentes gráficos, ou seja, na thread principal que normalmente é descartada. Esquematicamente:

class X
{
   ...main(...)
  {
     JFrame frame = ...;
     ...
     frame.show();
    //
    ServerSocket ssocket = ...
    while(true)
       new MyConnection(ssocket.accept());
  }
}

Se for realmente necessário lançar uma thread, então:

class X
{
   ...main(...)
  {
     JFrame frame = ...;
     ...
     frame.show();
     //
     new Thread
     {
       public void run()
       {
          ServerSocket ssocket = ...
          while(true)
             new MyConnection(ssocket.accept());
       }
    }.start();
  }
}
Criado 9 de agosto de 2004
Ultima resposta 9 de ago. de 2004
Respostas 1
Participantes 2