Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 24385|Отговор: 4

[Източник] C# програмите позволяват само една инстанция да изпълни правилния код

[Копирай линк]
Публикувано в 10.12.2016 г. 14:55:50 ч. | | | |


Написах софтуер за мониторинг на трафика, който искам компютърът да работи само веднъж, и кодът е следният:



Намери, веднага кликни върху софтуера, ще се появи "Инстанция е запушена", но,След като изчакате 30 секунди, кликнете върху софтуера и той отново работи успешноВеднъж!!

Жалко е.Горният код е наред в DEBUG режим, но не работи в RELEASE.
Проблемът е, че Mutex се декларира като локална променлива и е в режим relese поради оптимизационни проблеми, вероятно защото компилаторът смята, че Mutex вече не се използва

използвана, рециклирана, тествана от себе си,

Сложете Mutex отгоре и го настройте като статична променлива, за да !!ДясноКодът е следният:





Резултат

Брой участници1MB+1 допринасям+1 Срив причина
Малък начинаещ, който обича да учи + 1 + 1 Като един!

Вижте всички оценки





Предишен:C# позволява правилното записване само на един екземпляр на приложението да се стартира
Следващ:Как да настроя софтуерното стартиране автоматично.
 Хазяин| Публикувано в 10.12.2016 г. 15:02:58 ч. |
Статичните полета не се рециклират от GC, статичните полета се разпределят в купчината на Loader, не-GC купчината и не се контролират от GC.

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

Метод на стартиране:



 Хазяин| Публикувано в 3.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