Я привязываюсь к событию Exit Process. У меня есть флажок для этого процесса для этого события, который определяет, что происходит, когда выполняется Exited-событие. Если я установил флажок во время выполнения процесса, он получит Process и добавит событие Exited. Если процесс не запущен, он запускает процесс и добавляет событие «Выход». Если флажок снят, независимо от того, запущен ли процесс или нет, я ничего не делаю.Убедитесь, что только один делегат связан с событием?
Моя проблема заключается в том, что если процесс запущен, и я проверяю флажок (он получает событие), снимите флажок (ничего не происходит по дизайну) и перепроверьте поле, тогда процесс получит ДВА ВЫХОДА событий (что являются тем же самым методом). Если у меня есть объект Process, как я могу добавить событие Exited, если оно уже есть?
Вы можете разместить соответствующий код для того, как зарегистрировать обработчик для события возбужденном? –
Кажется подозрительным, что вам нужно заглянуть в делегат, чтобы определить, сколько регистраторов зарегистрировано. Возможно, вы можете зарегистрироваться только один раз, а затем внутри функции определить, следует ли запускать на основе текущего значения флажка? – deepee1
Похоже, вам нужен уже зарегистрированный флаг или альтернативно использовать делегат вместо события. У делегата может быть только один метод, назначенный ему одновременно. –