У меня есть многопоточное приложение С#, и у него есть блокиратор для чтения, но он дает исключение тайм-аута на некоторых компьютерах (не имея возможности получить блокировку во времени), и мне нужно принудительно закрыть все потоки. как мне это сделать без каких-либо дополнительных исключений?
Как принудительно закрыть приложение на С#?
Ответ 1
Environment.FailFast может быть тем, что вы ищете, но позаботьтесь о побочных эффектах: никаких финализаторов, блоков или чего-либо еще else запускается. Это действительно завершает процесс СЕЙЧАС.
Ответ 2
Если вы хотите убить программу без каких-либо сообщений об исключениях из системы, после, например, фатальной ошибки, вы можете использовать:
Process.GetCurrentProcess().Kill()
Ответ 3
Я думаю, что лучшим решением для принудительного выхода из приложения является использование следующей строки кода:
Environment.Exit(0)
Environment.FailFast()
заканчивается исключением во время выполнения.
Ответ 4
Чтобы принудительно выйти из приложения как можно скорее, вы можете использовать Environment.FailFast()
Ответ 5
Это может быть нерелевантный ответ, если вы ищете чистый код С# для завершения вашего приложения, но вы можете использовать системную собственную форму завершающих процессов, таких как команда taskkill
, которая наверняка завершит ваше приложение.
Попробуй. Сначала добавьте ссылку на систему.
using System.Diagnostics;
Если вам нужно завершить процесс,
String process = Process.GetCurrentProcess().ProcessName;
Process.Start("cmd.exe", "/c taskkill /F /IM " + process + ".exe /T");
-
/F
- Сила для завершения. -
/T
- завершает дерево процесса (процесс и любые другие запущенные им процессы). -
/IM
- Название изображения или имя процесса.