Concorrência

Olá pessoal,

Estou com uma dúvida, porque neste código resumido que coloquei eu nem chego nem a ver “Conectando, aguarde…”? Ele dá um tempinho que é a demora para consultar o webservice e mostra logo o “Transação OK, imprimindo…”

Devo implementar Thread neste caso? Como?

[code]
private void SaldoCartao() {

jLcd.setText(“Conectando, aguarde…”);

if(VerificaVarSaldo()) {
try {
ConsultaWS Consulta = new ConsultaWS(); // Faz uma consulta no WebService
Resposta = Consulta.Saldo(this.NumeroCartao,this.Senha);
} catch (Exception ex) {
ex.printStackTrace();
}

        if(Resposta[0].equals("-1")) {
           [...]
        }else{
           jLcd.setText(Resposta[7] + "\nImprimindo...");                   
           Imprimindo.Cupom(Resposta[6]);
        }

}

}[/code]

Separar o processamento em uma thread diferente justifica a complexidade extra quando esse processamento ocupa muito tempo (dependendo do caso, dois segundos é muito tempo!). Verifique se essa conexão pode ocupar muito tempo no pior caso.

(Post duplo sem querer, reaproveitando para algo útil)

Você também tem que analisar se o processo candidato a rodar em uma thread separada vai rodar sempre paralelamenta a aplicação ou vai precisar ser executado na hora e a aplicação precisar epserar pelo seu término antes de avançar.