Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 24385|Ответ: 4

[Источник] Программы C# позволяют выполнять правильный код только одному экземпляру

[Скопировать ссылку]
Опубликовано 10.12.2016 14:55:50 | | | |


Я написал программу для мониторинга трафика, которую хочу, чтобы компьютер запускал только один раз, и код такой:



Найдите, сразу же нажмите на программу, появится запрос «Запущен экземпляр», но,После 30 секунд ожидания нажмите на программу, и она снова успешно заработаетОдин раз!!

Жаль.Вышеуказанный код работает нормально в режиме DEBUG, но не работает в режиме RELEASE.
Проблема в том, что Mutex объявлен как локальная переменная и находится в режиме relese из-за проблем с оптимизацией, возможно, потому что компилятор считает, что Mutex больше не используется

используется, перерабатывался, тестировался сам,

Поставьте Mutex сверху и установите его как статическую переменную для !!ПравильноКод таков:





Счёт

Количество участников1МБ+1 способствовать+1 Коллапс причина
Маленький новичок, который любит учиться + 1 + 1 Вот так!

Смотреть все рейтинги





Предыдущий:C# позволяет правильно записывать только одну экземпляр приложения
Следующий:Как настроить автоматическую загрузку программного обеспечения.
 Хозяин| Опубликовано 10.12.2016 15:02:58 |
Статические поля не перерабатываются GC, статические поля распределяются в куче загрузчика, не GC куче и не управляются GC.

Статические члены (статические классы или нет) перерабатываются только при попадании в AppDomain.UnLoad. Статические классы могут иметь только статические элементы
Опубликовано 06.12.2017 11:48:05 |
Научился, спасибо, что поделились
 Хозяин| Опубликовано 23.02.2018 14:59:01 |
Другие реализации:

Метод запуска:



 Хозяин| Опубликовано 03.10.2025 16:10:11 |
.NET/C# реализует программу singleton на базе Mutex и MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com