Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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