Thread em conectar/desconectar

1 resposta
A

estou com um pouco de dificuldade de saber quando devo usar threads e quando
nao devo em um programa que estou fazendo. por exemplo, eu tenho um botão
"conectar" em um form, e ao clicar neste botao eu crio uma nova thread e
boto o codigo para conectar dentro dela. isso eu fiz para evitar que o form
todo trave enquanto a conexao nao estiver estabelecida.

estou postando meu codigo abaixo. nao sei se fiz alguma coisa idiota.. mas
analisem... outra coisa que queria fazer é interromper a thread de conexao
se o usuario clicar no botao conectar novamente, enquanto a conexao esta
sendo realizada.

btnConnect.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {



				new Thread(new Runnable() {
				
					{
						new Thread(this).start();
						
						
						
					}
					
					public void run() {
						
						
                        //procedimento para conectar na coisa
						if (Operario.initSpace(edtHost.getText(),Integer.parseInt(edtPort.getText())))
						{
				//
						}
						else
						{
					//		
						}
					}
				}).setPriority(Thread.MIN_PRIORITY);//Thread
				//este trecho ja fiz de varias formas diferentes. este codigo entre os {} 
no comeco da classe eu botei agora. mas ja fiz de outras formas 
tambem, como botando o start() aonde agora a prioridade está sendo setada  

			
				
			}//
		});//BtnConnect.addActionListener

1 Resposta

ricardolecheta

alexpfb:
. isso eu fiz para evitar que o form
todo trave enquanto a conexao nao estiver estabelecida

esse é um dos motivos para usar threads…

olhei por cima o código…

mas vc precisa remover a linha: new Thread(this).start();

e onde vc faz o setPriority() que vc precisa fazer o .start()… como vc mesmo escreveu que tinha tentado assim.

talvez vc precise guardar a referência da thread em uma variável.

sobre a outra pergunta poderia ter uma variável na thread para controlar se já foi feita a conexão… ou vc pode desabilitar o botão…

Criado 5 de maio de 2005
Ultima resposta 5 de mai. de 2005
Respostas 1
Participantes 2