Я разрабатываю долго выполняющийся процесс, в котором размещаются удаленные объекты. Из-за ограничений по дизайну я не могу использовать службу Windows, поэтому этот процесс является фоном для приложения Forms. Я также не могу использовать WPF, потому что мы ограничены .Net 2.0. В любом случае, поскольку нет гарантии, что фоновый процесс запущен, я хочу иметь возможность установить флаг системы из процесса, который я могу проверить у другого..Net System Wide Flag, чтобы определить, запущено ли приложение/поток
Я прочитал и попытался использовать Mutex's, но, похоже, не существует способа определить, существует ли Mutex, не создавая его, если он уже не существует (если я не пропущу что-то, что всегда возможно).
В идеале, системная широкая переменная с ее временем жизни, определяемая длительным приложением, была бы идеальной, а не только сигнализировать, работает она или нет, но, возможно, также хранить данные примитивного состояния (например, простое перечисление целых чисел).
Может ли кто-нибудь предложить хороший способ достичь этого?
Да, вы должны использовать Mutex's. Но на днях у меня это не получилось, поэтому я не дам ответа :) Кроме того, вам, вероятно, понадобится глобальный мьютекс, как описано в MSDN. – leppie
Я думаю то же самое, но самая большая проблема заключается в том, что я использую Mutex.OpenExisting и мьютекс определен, клиентское приложение принимает на себя это право, и оно освобождается, когда этот поток заканчивается, и это не сработает. Это заставляет меня думать, что использование мьютекса не обязательно является правильным подходом. – Jason