Principales respuestas
Error al ejecutar END en un formulario

Pregunta
-
Hola,
Me esta pasando esto, que en el formulario principal , al querer cerrarlo y detener la ejecución de la aplicación termina siempre en error.
Lo quizás distinto en este caso, es que este formulario incluye un BackgroundWorker..
Antes de ejecutar el END termino de manera correcta la ejecución del Hilo secundario, pero aun así me tira el error de
ERROR AL CREAR IDENTIFICADOR DE VENTANA.
Que puede ser ?
Gracias
Respuestas
-
"Chiara.Net" escribió:
> Me esta pasando esto, que en el formulario principal , al querer cerrarlo
> y detener la ejecución de la aplicación termina siempre en error.
>
> Lo quizás distinto en este caso, es que este formulario incluye un BackgroundWorker..
>
> Antes de ejecutar el END termino de manera correcta la ejecución del Hilo secundario,
> pero aun así me tira el error de
>
> ERROR AL CREAR IDENTIFICADOR DE VENTANA.
>
> Que puede ser ?Hola:
Sin más detalles de tu parte, es complicado que alguien te pueda decir el motivo por el cual obtienes el error que indicas cuando se ejecuta la instrucción End, que dicho sea de paso, no es la mejor manera de cerrar una aplicación de Windows Forms y más si hay un subproceso en ejecución, que no sabemos ni siquiera el trabajo que éste hace.
Comentas que deseas cerrar y detener la ejecución de la aplicación, pero igualmente escribes que obtienes un mensaje de error que indica que no se puede crear el identificador de ventana, y que yo sepa, los identificadores de ventana (de un formulario) no se crean al cerrar la aplicación más bien cuando queremos mostrar un formulario de la misma. ¿?
Lo único que te puedo decir es que, si puedes evitarlo, elimina la instrucción End y finaliza tu aplicación cerrando los formularios hijos abiertos y, por último, el formulario principal. Y en cuanto al subproceso que pudiera estar ejecutando el control BackgroundWorker, cancélalo mediante una llamada a su método CancelAsync, y en el método de trabajo verifica el valor de su propiedad CancellationPending, que de tener el valor True es cuando deberás de actuar en consecuencia para dar por finalizado el subproceso en ejecución.
Un saludo
Enrique Martínez Montejo
[MS MVP - Visual Studio y Tecnologías de Desarrollo]
Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.
Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.
Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción Option Strict.- Editado Enrique M. MontejoModerator viernes, 16 de junio de 2017 6:48
- Propuesto como respuesta Brayan De La Cruz domingo, 18 de junio de 2017 1:42
- Marcado como respuesta Enrique M. MontejoModerator martes, 20 de junio de 2017 8:43
Todas las respuestas
-
-
"Chiara.Net" escribió:
> Me esta pasando esto, que en el formulario principal , al querer cerrarlo
> y detener la ejecución de la aplicación termina siempre en error.
>
> Lo quizás distinto en este caso, es que este formulario incluye un BackgroundWorker..
>
> Antes de ejecutar el END termino de manera correcta la ejecución del Hilo secundario,
> pero aun así me tira el error de
>
> ERROR AL CREAR IDENTIFICADOR DE VENTANA.
>
> Que puede ser ?Hola:
Sin más detalles de tu parte, es complicado que alguien te pueda decir el motivo por el cual obtienes el error que indicas cuando se ejecuta la instrucción End, que dicho sea de paso, no es la mejor manera de cerrar una aplicación de Windows Forms y más si hay un subproceso en ejecución, que no sabemos ni siquiera el trabajo que éste hace.
Comentas que deseas cerrar y detener la ejecución de la aplicación, pero igualmente escribes que obtienes un mensaje de error que indica que no se puede crear el identificador de ventana, y que yo sepa, los identificadores de ventana (de un formulario) no se crean al cerrar la aplicación más bien cuando queremos mostrar un formulario de la misma. ¿?
Lo único que te puedo decir es que, si puedes evitarlo, elimina la instrucción End y finaliza tu aplicación cerrando los formularios hijos abiertos y, por último, el formulario principal. Y en cuanto al subproceso que pudiera estar ejecutando el control BackgroundWorker, cancélalo mediante una llamada a su método CancelAsync, y en el método de trabajo verifica el valor de su propiedad CancellationPending, que de tener el valor True es cuando deberás de actuar en consecuencia para dar por finalizado el subproceso en ejecución.
Un saludo
Enrique Martínez Montejo
[MS MVP - Visual Studio y Tecnologías de Desarrollo]
Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.
Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.
Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción Option Strict.- Editado Enrique M. MontejoModerator viernes, 16 de junio de 2017 6:48
- Propuesto como respuesta Brayan De La Cruz domingo, 18 de junio de 2017 1:42
- Marcado como respuesta Enrique M. MontejoModerator martes, 20 de junio de 2017 8:43