Что-то не так в выключении компьютера из SemaphoreSlim?
мой сервис использует некоторые дескрипторы ввода-вывода, и я предполагаю, что при закрытии их они могут повредить данные на диске или что-то еще, если не будут должным образом обработаны.
Завершение работы компьютера завершит все процессы.Завершение процесса закроет все дескрипторы, удерживаемые этим процессом.Таким образом, сам факт, что ручка открыта, не вызовет никаких проблем;ОС очищает все дескрипторы процесса, закрывая их.
Однако, если ваше приложение может записывать в файл во время выключения, то есть повод для беспокойства.Операционная система выполнит постепенное завершение - запросит завершение работы каждого процесса, а затем немного подождет, пока он выполнит очистку.Но если ваше приложение знает, что оно собирается завершить работу, вы можете выполнить очистку до запуска выключения.Таким образом, нет никакой возможности, что ваше приложение решит, что оно должно записать какой-то огромный объем данных, как только начинается выключение, и у него нет времени на его завершение.
Итак, чтобы ответить на ваш конкретный вопрос, нетнет ничего плохого в том, чтобы выключить компьютер, удерживая SemaphoreSlim
(или любой другой замок).