Я искал долго и упорно для ответа на мой вопрос и нашел ответы только в классе, который не существует в 3.5 .NET рамок версии (и с CE Windows 5.0.) Кроме того, это Visual C # с видеоStudio 2008.
Когда я пытаюсь сделать следующее (используя System.Threading)
bool ok;
Mutex myMutex = new Mutex();
ok = Mutex(true,"scanner", out ok);
Компилятор жалуется, что Mutex является типом, но используется как переменная.Если я использую [STAThread], он также жалуется, что не может его найти, и я вынужден использовать [MTAThread].
Являются ли классы для мобильных устройств типа программ на c # одинаковыми для консолиоснованные на них? Я несколько новичок в этом, и идея о том, как объявить, использовать, заблокировать и все, что вы хотели знать о мьютексе, вызывает у меня головную боль. OO Я подозреваю, что это потому, что классы отличаются от версий консолимобильные версии.
Кажется, что это так просто: создать мьютекс, проверить его существование, если это так, не запускать новый экземпляр exe. Это все, что я хочу ... просто запустить один экземпляр любогоexe. Это мобильное устройство, поэтому оно является автономным, и мне больше не нужно беспокоиться о том, чтобы кто-нибудь еще использовал .exe. Просто нужно помешать пользователю нажать кнопку «Пуск» 15 раз и запустить 15 экземпляров приложения (потом жаловаться нанизкое использование памяти!)
Я читал, что хороший способ - создать поток, заблокировать его, а затем проверить, была ли блокировка успешной, чтобы проверить,экземпляр exe уже запущен, закройте его, если это так, иначе запустите exe.Есть ли более простой способ сделать это?