Thread em conectar/desconectar

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.

[code]
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
	
	
			
	

	[/code]

[quote=alexpfb]. isso eu fiz para evitar que o form
todo trave enquanto a conexao nao estiver estabelecida[/quote]
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…