1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Threads (ou será forks?) em java

Discussão em 'Programação' iniciada por Fork, 2 de Dezembro de 2007. (Respostas: 3; Visualizações: 711)

  1. Fork

    Fork What is folding?

    Boas,

    Estou a criar um projecto em java. Ele corre um comando da shell (Process) e parsa o resultado para ser mostrado.

    Agora tenho um problema no ambiente gráfico. Quando mando correr o processo o programa deixa de responder enquanto o processo está activo. O que eu quero fazer é poder matar o processo a partir do interface gráfico clicando no botão cancelar.

    O processo é um traceroute

    Código:
        private void runButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
            //FIXME: Arranjar maneira de poder cancelar o processo 
            List<ResultLine> res;
            resultArea.setText("");
            stopButton.setEnabled(true);
            
            // Para o caso de não ser especificado um destino
            if (targetField.getText().isEmpty())
                targetField.setText("localhost");
            
            // Corre o traceroute do sistema
            res = TR.traceroute(targetField.getText(), Settings.hops, Settings.waitTime);            
            
            // Verifica se o resultado é nulo
            if (res == null)
                resultArea.append("Erro: Trace a rota não foi calculada");
            
            // Constroi a String com os resultados
            StringBuilder s = new StringBuilder();
            for(ResultLine r : res){
                s.append(r.toString());
            }
            resultArea.setText(s.toString());
            stopButton.setEnabled(false);
    }       
    Agradeço a vossa ajuda
     
  2. napalm

    napalm Power Member

    Não percebi bem o que queres dizer com ambiente gráfico, estás a falar da interface do teu programa ou do IDE?
    Mas seja como for, tanto forks como threads parecem ser a solução para o teu problema. No entanto como estás em Java recomendo-te a usar threads que estão bem integradas na linguagem e fazem parte da biblioteca standard.
     
  3. Fork

    Fork What is folding?

    Pois, eu queria saber é como faço isso.
     

Partilhar esta Página