Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 20162|Respuesta: 0

[Fuente] {"No se puede acceder a un objeto desechado.\r\nNombre del objeto: 'Form1'."}.

[Copiar enlace]
Publicado en 12/6/2016 16:28:41 | | | |

Cómo evitar excepciones al cerrar un formulario al llamar un control entre hilos no puede acceder a los objetos eliminados.
Al llamar a un formulario entre hilos dentro de un hilo, y al usar invocar para asignar valores o cambiar propiedades a los controles del formulario, si el hilo no termina antes de cerrar el formulario, siempre aparecerá una excepción como esta: no se puede acceder a un objeto eliminado.
La razón debería ser que cuando se llama al control de formulario en el hilo, el formulario ha sido cerrado de sesión, por lo que sale de todos los hilos antes de que el formulario se cierre de sesión. Para resolver este problema, puedes añadir el siguiente código:


Ya no aparecerá la excepción.
Llamar a system.environment.exit(0) puede cerrar completamente el programa, sin importar qué hilo se vea obligado a cerrar, terminando el programa de forma muy limpia.



Evento de cierre FormEnding

Cuando el formulario se cierra, ocurre el evento FormClosure. Este evento está gestionado. Esto libera todos los recursos relacionados con el formulario.

Si cancelas este evento, el formulario permanece abierto.

Cuando el formulario aparece como un cuadro de diálogo de modo, al hacer clic en Cerrar se oculta el formulario y se establece la propiedad ResultadDiálogo en Cancelar. Al establecer la propiedad ResultadDiálogo en algunos eventos, el valor del ResultadoDiálogo puede ser anulado cuando el usuario haga clic en el botón de cerrar en la esquina superior derecha.

Evento FormClosed

Un evento FormClosed ocurre después de que el método Cerrar o Salir de la clase de usuario o Aplicación cierra el formulario.

Puedes usar este evento para liberar algunos de los recursos del formulario. También puedes usar este evento para guardar información en el formulario de entrada o para actualizar el formulario padre.





Anterior:Inicio de sesión C#/Winform versión 12306, puedes hacer clic manualmente en el código de verificación de imagen
Próximo:Socket C# para obtener la dirección IP y el puerto del cliente
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com