Tengo una aplicación C# multiproceso y tiene un bloqueo de escritor lector, pero da una excepción de tiempo de espera en algunas computadoras (no es posible adquirir un bloqueo a tiempo) y necesito cerrar forzosamente todos los hilos. ¿cómo lo hago sin obtener ninguna excepción adicional?¿Cómo forzar la aplicación de salida en C#?
Respuesta
Environment.FailFast puede ser lo que estás buscando, pero ten cuidado con los efectos secundarios: no se ejecutan finalizadores, finalmente bloques o cualquier otra cosa. Realmente termina el proceso AHORA.
ok, lo usé y me dio esta excepción: El tiempo de ejecución ha encontrado un error fatal. La dirección del error estaba en 0x044f07bd, en el hilo 0xfb0. El código de error es 0x80131623. Este error puede ser un error en el CLR o en las partes inseguras o no verificables del código de usuario. Las fuentes comunes de este error incluyen errores de clasificación de usuarios para COM-interop o PInvoke, que pueden dañar la pila. – armin
Vale la pena mencionar la opción de Environment.Exit. Ambos tienen la garantía de salir casi de inmediato, pero Exit no genera un evento de error de evento del sistema y ejecuta el finalizador try/finally. – angularsen
Para salir enérgicamente su solicitud lo antes posible puede utilizar Environment.FailFast()
Si quieres matar programa sin ningún mensaje de excepción de sistema, después, por ejemplo, error fatal, puede utilizar:
Process.GetCurrentProcess().Kill()
Usé este y funcionó, gracias. – Jeremy
pienso la mejor solución para obligar a salir de la aplicación es utilizar la siguiente línea de código:
Environment.Exit(0)
Envrironment.FailFast()
termina con una excepción en tiempo de ejecución.
Gracias - esto funcionó mejor para mí ya que quería evitar excepciones. – stuzor
Esto podría ser una respuesta irrelevante si está buscando un código C# puro para finalizar su aplicación, pero puede usar un sistema nativo de procesos de terminación como taskkill
, que terminará su aplicación con seguridad.
Pruébalo. Agregue la referencia del sistema primero.
using System.Diagnostics;
Dondequiera que necesita para terminar el proceso,
String process = Process.GetCurrentProcess().ProcessName;
Process.Start("cmd.exe", "/c taskkill /F /IM " + process + ".exe /T");
/F
- Fuerzas para terminar./T
- Termina el árbol de proceso (proceso y cualquier otro proceso iniciado por él)./IM
- Nombre de la imagen o nombre del proceso.
- 1. Forzar el apagado de la aplicación (.net)
- 2. C#: Salida de aplicación de consola de redireccionamiento: ¿cómo purgar la salida?
- 3. ¿Cómo puedo forzar a IIS 7 a enjuagar la salida?
- 4. cómo forzar la lengua en la aplicación para Android
- 5. Cómo sobrescribir la salida estándar en C
- 6. Forzar la aplicación web de iPhone en el modo horizontal
- 7. ¿Cómo forzar a la aplicación C# .net a ejecutar solo una instancia en Windows?
- 8. Cómo crear botón de salida en la aplicación Flash
- 9. ¿Puedo forzar la limpieza de la memoria en C#?
- 10. C++ cambio de salida en la consola
- 11. Cómo guardar la salida de una aplicación de consola
- 12. Java: cómo cancelar la salida de la aplicación
- 13. Forzar salida de sonido a través del altavoz en Android
- 14. Cómo analizar la salida de línea de comando de C#?
- 15. ¿Cómo forzar la salida del usuario cuando su nombre de usuario es cambiado por otro usuario?
- 16. Forzar la aplicación iOS para iniciar en modo apaisado
- 17. Cómo imprimir en la ventana de salida de C++ Builder
- 18. Cómo usar la salida xsd.exe/c
- 19. Cómo capturar la salida de consola de un servicio C#?
- 20. Cómo forzar la sangría de las directivas condicional C#?
- 21. Cómo forzar la llamada a un método derivado de C#
- 22. funciones de salida en C
- 23. Salida eficiente de la aplicación multiproceso (detalles)
- 24. Cómo utilizar la salida cachegrind para optimizar la aplicación
- 25. Formato de salida en C++
- 26. Eliminar singletons en la salida de la aplicación con Ninject
- 27. Salida de color en C++
- 28. ¿Cómo perfilar la aplicación C++ de subprocesos múltiples en Linux?
- 29. Forzar SSL usando ssl_requirement en la aplicación Rails 2
- 30. Forzar la vista web para abrir las URL dentro de la aplicación - aplicación de Android
'Environment.FailFast (int)' matará su aplicación lo más rápido posible. – vcsjones
Posible duplicado de http://stackoverflow.com/questions/1057151/application-exit – angularsen