Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

scorpio

[Resolvido] Chamar formulário de uma thread.

Recommended Posts

Hey!

 

Tudo em ordem??

Tenho uma dúvida.

 

Criei uma thread no Form1.

Essa Thread chama o Form2. (.Show). Funcionou normal, mas logo após exibir o formulário, ele já desaparecia.

Troquei o .Show por .ShowDialog e funcionou. Mas o ShowDialog trava o processamento... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

 

Public Class Form1
	Dim t As Threading.Thread
	Dim x As Form2
	Public Sub ChamaOutroFormulario()
		x = New Form2
		'x.Show() Assim ele fecha.
		x.ShowDialog() 'Assim ele não fecha.
		Msgbox("Alo")
	End Sub

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		t = New Threading.Thread(AddressOf ChamaOutroFormulario)
		t.Start()
	End Sub
End Class

O Msgbox("Alo") só vai aparecer quando eu fechar o formulário x.

 

Any idea?

 

Até mais.

 

 

 

[sim, editei]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Scorpio,

 

beleza?

 

Então, eu acredito que não tenha como você fazer isso que você está querendo...

 

Uma thread ela fica ativa (viva) enquanto está processando alguma operacao, no seu caso o método "ChamaOutroFormulario", ao executar o Show do formulário, a Thread já executou o que tinha que executar, então morre, e o formulário morre junto com ela.

Quando você executa o ShowDialog, ele funciona pois trava a thread que chamou o método.

 

Se eu descobrir algo diferente disso, eu aviso.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, fiquei com o ShowDialog mesmo. Serviu para o que eu precisava.Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.