none
Error al ejecutar END en un formulario RRS feed

  • 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

    jueves, 15 de junio de 2017 17:17

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.


    viernes, 16 de junio de 2017 6:46
    Moderador

Todas las respuestas

  • Hola prueba colocar Me.Close() antes del hilo END.

    Saludos

    jueves, 15 de junio de 2017 23:25
  • "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.


    viernes, 16 de junio de 2017 6:46
    Moderador