THREADS

14/09/2005 - 09:13 por Oscar Rodriguez | Informe spam
Hola

Tengo dos hilos, el primero llama una ventana que muestra el label
"Cargando..." el segundo realiza el proceso largo. El problema es que antes
de que se me abra la ventana de Cargando se queda trabajando en el segundo,
a pesar de que llamo a hilo1.start primero. y hasta que no acaba el hilo2 no
se abre la ventana de Mostrarbox

Dim hilo1 As New Threading.Thread(AddressOf MostrarBox)
Dim hilo2 As New Threading.Thread(AddressOf CargarConfiguracionInicial)
hilo1.Start()
hilo2.Start()

Public Sub MostrarBox()
if oform_carga.ShowDialog = DialogResult.OK Then
End If
End Sub

Porque?
 

Leer las respuestas

#1 Ivanhoe
14/09/2005 - 20:14 | Informe spam
Oscar por ahi tienes un error,...

1. Toda clase que derive de la Clase System.Windows.Forms.Control solo puede
invocada en el hilo que la
esta creando, si tu objeto quieres que trabaje en un ambiente
multi-hilo tienes que hacerlo atravez de BeginInvoke o Invoke

http://msdn.microsoft.com/library/s...stopic.asp

http://msdn.microsoft.com/library/s...stopic.asp

2. Una solicion rapida a tu codigo a lo que quieres hacer:

Dim hilo As New Threading.Thread(AddressOf CargarConfiguracionInicial)
hilo.Start()

y en el Callback CargarConfiguracionInicial haces algo asi :

Private Sub CargarConfiguracionInicial()

' Desplegando Forma Cargando
dim oform_carga as new MyForma()
oform_carga.TopMost = False
oform_carga.Owner = Me
oform_carga.Show()
oform_carga.Refresh()

' //////////////////////
'
' Codigo Here
'
' \\\\\\\\\\\\\\\\\\\\\\\

' Cerramos Forma Cargando
oform_carga.Close()

End Private

Algo asi,...no es la unica manera, hay mejores forma de hacer lo que quieres
hacer,

Saludos

"Oscar Rodriguez" wrote in message
news:
Hola

Tengo dos hilos, el primero llama una ventana que muestra el label
"Cargando..." el segundo realiza el proceso largo. El problema es que


antes
de que se me abra la ventana de Cargando se queda trabajando en el


segundo,
a pesar de que llamo a hilo1.start primero. y hasta que no acaba el hilo2


no
se abre la ventana de Mostrarbox

Dim hilo1 As New Threading.Thread(AddressOf MostrarBox)
Dim hilo2 As New Threading.Thread(AddressOf CargarConfiguracionInicial)
hilo1.Start()
hilo2.Start()

Public Sub MostrarBox()
if oform_carga.ShowDialog = DialogResult.OK Then
End If
End Sub

Porque?


Preguntas similares