Есть ли способ запустить все блокиfinally во всех потоках при обработке Ctrl+C в консольном приложении?C#

Место общения программистов C#
Ответить
Anonymous
 Есть ли способ запустить все блокиfinally во всех потоках при обработке Ctrl+C в консольном приложении?

Сообщение Anonymous »

У меня есть консольное приложение, из которого я хочу выйти с помощью ctrl+c. В моей кодовой базе/внешних библиотеках есть типы, которым абсолютно необходимы методы Dispose/Close(), вызываемые для очистки.
В комментариях предлагается вопрос о том, как перехватить Событие ctrl+c. Я уже знаю, что смогу это сделать:

Код: Выделить всё

Console.CancelKeyPress+=
... obj.Close()/obj.Dispose()
Проблема в том, что мне нужно не забывать делать это перед каждым блоком using.< /p>
Есть ли общий способ - в идеале ОДИН обработчик событий для CancelKeyPress, который я регистрирую в корне для всего приложения, который каким-то образом принудительно принудительно > блокирует запуск всех потоков?

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-handling
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»