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

Вид: 57872|Ответ: 7

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

[Скопировать ссылку]
Опубликовано 29.08.2018 10:39:11 | | | |
В ежедневной разработке мы можем использовать очереди — это структура хранения, позволяющая выполнять принцип «первым пришёл — первым ушёл».

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

Если нам нужно записывать журнал интерфейса каждого пользователя, запрашивающего наши данные, нам не нужно писать журнал каждый раз, когда пользователь их запросит, мы можем поместить содержимое журнала в очередь и позволить другим потокам выполнять его, чтобы не влиять на эффективность приложения.

Ещё одним преимуществом является то, что добавление данных в очередь в случае параллелизма с использованием одного потока для выполнения данных очереди позволяет избежать множества исключений, если при многопоточном доступе к одному и тому же физическому файлу возникнут исключения. (в зависимости от доступности)

Универсальный подход очереди:

Это абстрактный класс, и вам нужно унаследовать этот класс абстракции и реализовать метод абстракции Execute. Поскольку я не знаю, какой тип данных вы хотите обрабатывать, здесь используются обобщённые данные: Entity — это строковый тип, параметры метода — строкового типа, а данные, которые вы обрабатываете, — это строковые данные.

Потокобезопасная очередь ConcurrentQueue гарантирует, что в многопоточной среде не будет исключений.

ManualResetEvent для управления сигналом потока,Раньше мы проверяли очередь на данные каждые несколько секунд или минутТеперь мы добавляем данные в очередь и нам нужно только передать сигнал!

Применение:

(Конец)




Предыдущий:Настройка Project Процесс производства пакета Я хочу скопировать вопрос о основном выходном файле
Следующий:Проблема redis Chinese не отображается корректно
 Хозяин| Опубликовано 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