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

Изглед: 57872|Отговор: 7

[Източник] c# капсулира универсална опашка QueueHelper

[Копирай линк]
Публикувано в 29.08.2018 г. 10:39:11 ч. | | | |
В ежедневната разработка можем да използваме опашки, които са структура за съхранение, която може да постигне "първи влязъл, първи излез".

Сценарии за кандидатстване: писане на логове, изпращане на имейли и т.н.

Ако трябва да записваме интерфейсния лог на всеки потребител, който иска нашите данни, не е нужно да пишем лог всеки път, когато потребителят го поиска, можем да сложим съдържанието на логовете в опашката и да оставим другите нишки да го изпълняват, за да не влияем на ефективността на приложението.

Друго предимство е, че добавянето на данни към опашката при конкурентност, използването на една нишка за изпълнение на данните от опашката може да избегне много изключения, ако достъпът до същия физически файл при конкурентност (многонишков) ще причини изключения. (в зависимост от наличността)

Универсален подход на опашките:

Това е абстрактен клас и трябва да го наследиш и да реализираш метода Execute абстракция. Тъй като не знам какъв тип данни искате да обработвате, тук се използват генерични данни, тоест Entity е от тип низ, параметрите на метода са от типа низ, а данните, които обработвате, са от тип низ.

Опашката ConcurrentQueue, безопасна за нишки, гарантира, че няма да има изключения в многонишкова среда.

ManualResetEvent за контрол на сигнала на нишката,В миналото проверявахме опашката за данни на всеки няколко секунди или минутиСега добавяме данните в опашката и остава само да предадем сигнал!

Използване:

(Край)




Предишен:Настройка на Project Процес на производство на пакети за инсталация Искам да копирам въпроса за основния изходен файл
Следващ:Проблемът с редис китайски не може да бъде показан правилно
 Хазяин| Публикувано в 24.05.2019 г. 10:13:59 ч. |
Препоръчайте рамка:

asp.net урок за Hangfire Framework за фонова задача
https://www.itsvse.com/thread-7611-1-1.html
(Източник: Architect_Programmer)
Публикувано в 10.09.2019 г. 10:26:26 ч. |
Защо методът Execute в класа Test не се изпълнява, когато го изпълнявам?
 Хазяин| Публикувано в 10.09.2019 г. 21:52:44 ч. |
hano7758 Публикувано на 2019-9-10 10:26
Защо методът Execute в класа Test не се изпълнява, когато го изпълнявам?

Можеш ли да публикуваш кода си?
 Хазяин| Публикувано в 23.01.2021 г. 11:53:46 ч. |
.NET/C# е базиран на фоновата опашка на задачи BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html

Публикувано в 26.07.2021 г. 14:09:53 ч. |
Как можеш да видиш кода
Публикувано в 26.09.2022 г. 22:20:08 ч. |
Трябва да се науча да го използвам
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com