Galera é o seguinte tenho uma aplicação onde em determinado ponto um método executa uma função que requer muito tempo de processamento e nesse momento a aplicação fica travada e o usuário não consegue realizar nenhuma operação e isso não é aceitavel quero que a aplicação fique disponivel para que o usuário possa realizar outras operações. Então resolvi passa esse processamento para um thread para que o sistema
faça execução dessa operação em segundo plano entrentanto não percebi alteração alguma no resultado do processamento a aplicação ainda continua travada sem que o usuário possa realizar outras atividades. Então resolvi colocar esse post pra que vcs pudessem me ajudar na manipulação dessa thread outro ponto é que além de realizar esse processamento essa thread também precisa receber parâmetros que serão utilizador por esse método durante sua execução. agradeço a ajuda.
Criei a thread e alguns atributos com os seus métodos set não sei se essa é abordagem correta foi uma tentativa de fazer o que eu queria.
public class EnvioSMSThreadArquivo extends Thread {
private Mensagem mensagem;
private byte[] bytes;
private String fileName;
private String diretorio;
private ControladorMensagem cm = new ControladorMensagem();
public void run() {
try {
cm.inserirMensagensArquivo(mensagem, bytes, fileName, diretorio);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void setMensagem(Mensagem mensagem) {
this.mensagem = mensagem;
}
public void setBytes(byte[] bytes) {
this.bytes = bytes;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public void setDiretorio(String diretorio) {
this.diretorio = diretorio;
}
}
Esse método aqui fica dentro de uma classe chamada serviço e quando ele é executado o que eu faço é criar minha thread setar os parâmetros e mandar essa thread rodar o sistema faz todo execução normalmente
mas cotinua tendo um desempenho ruim o usuário fica esperando e não consegue realizar nenhuma tarefa enquanto essa não for concluida.
[code]
public void inserirMensagensGrupo(Mensagem mensagem,
ArrayList listaGrupo) {
EnvioSMSThread thread = new EnvioSMSThread();
thread.setMensagem(mensagem);
thread.setLista(listaGrupo);
thread.run();
}[/code]
Agradeço a ajuda pessoal.