Parametros a una funcion en segundo plano
Publicado por Xbi (2 intervenciones) el 05/11/2009 10:33:25
Hola, tengo desarrollada una pequeña aplicación para importar los datos de un fichero xml a una base de datos MS Access. Funciona correctamente pero cuando esta realizando la función importarXml(MyFileStream,MyRutaBD) parece que no responde aunque en realidad si que esta funcionando.
Bien, para solucionar esto estoy intentando usar un control backgroundworker para ejecutar en segundo plano esa funcion.
Mi problema es que no se ahora como hacer llegar a esa funcion los parametros que requiere usando el control backgroundworker
Mi codigo (resumido)
Public Class Form
Private Sub CmdImportar(........)
'Obtengo el stream con del fichero origen de donde quiero importar los datos
'con un OpenDialog
'lo mismo para obtener la ruta de destino con un SaveDialog
'y ahora arranco la ejecucion en segundo plano
'LLAMADA A INICIALIZACION DEL PROCESO
backgroundworker1.RunWorkerAsync(parametros)
End Sub
Private Sub backgroundworker1_DoWork(By val sender As System.Object, By Val ....)
_ Handles Worker.DoWork
'LLAMADA AL PROCESO QUE RALENTIZA LA INTERFAZ
dim parametros as parametros_importarXML 'esto es un tipo estructura que
'contiene los dos parametros
p = CType(sender,parametros_importarXML) ' aqui al ejecutar me produce una
'excepcion de conversion no permitida
Me.importarXml(p.MyStream, p.MyrutaBD)
End Sub
End Class
En definitiva necesito, por favor, una solucion para hacer llegar varios parametros a una funcion que se va a ejecutar en segundo plano.
Muchas gracias!
Bien, para solucionar esto estoy intentando usar un control backgroundworker para ejecutar en segundo plano esa funcion.
Mi problema es que no se ahora como hacer llegar a esa funcion los parametros que requiere usando el control backgroundworker
Mi codigo (resumido)
Public Class Form
Private Sub CmdImportar(........)
'Obtengo el stream con del fichero origen de donde quiero importar los datos
'con un OpenDialog
'lo mismo para obtener la ruta de destino con un SaveDialog
'y ahora arranco la ejecucion en segundo plano
'LLAMADA A INICIALIZACION DEL PROCESO
backgroundworker1.RunWorkerAsync(parametros)
End Sub
Private Sub backgroundworker1_DoWork(By val sender As System.Object, By Val ....)
_ Handles Worker.DoWork
'LLAMADA AL PROCESO QUE RALENTIZA LA INTERFAZ
dim parametros as parametros_importarXML 'esto es un tipo estructura que
'contiene los dos parametros
p = CType(sender,parametros_importarXML) ' aqui al ejecutar me produce una
'excepcion de conversion no permitida
Me.importarXml(p.MyStream, p.MyrutaBD)
End Sub
End Class
En definitiva necesito, por favor, una solucion para hacer llegar varios parametros a una funcion que se va a ejecutar en segundo plano.
Muchas gracias!
Valora esta pregunta


0