Описание тега concurrent-queue

Concurrent Queue - это потокобезопасная коллекция "первым пришел - первым вышел" (FIFO).
2 ответа

ConcurrentQueue и Parallel.ForEach

У меня есть ConcurrentQueue со списком URL-адресов, которые мне нужны, чтобы получить источник. При использовании Parallel.ForEach с объектом ConcurrentQueue в качестве входного параметра метод Pop не будет работать ничего (должен возвращать строку)…
11 июн '16 в 21:07
1 ответ

Неправильное понимание concurrentQueue, единственного потребителя, работающего из очереди в своем собственном потоке

У меня возникают проблемы при создании работающего SystemFileWatcher, который принимает созданное событие и сохраняет его в очереди для работы с отдельным потоком. Я прочитал бесчисленные темы здесь по этой проблеме, но я не могу разобраться в этой …
2 ответа

Использование Blocking Collection для доступа к базе данных и загрузки изображений в C#

Я работаю над программой, в которой есть две кнопки на форме. Первый выполняет функцию доступа к базе данных, а другой загружает изображение из базы данных и сохраняет его вместе с 3 копиями изображения (Thumbnail, zoom, small). Код для доступа к ба…
3 ответа

Использование Содержит метод<T> в ConcurrentQueue, если T является классом или структурой

Я плохо понимаю коллекцию ConcurentQueue. Как использовать метод Contains в ConcurrentQueue, если T является классом или структурой? Мой код: namespace lab2Form { struct DomainName { public string domainName; public ulong domainNameCounter; } class …
20 окт '14 в 19:09
1 ответ

Как многократно повторять параллельную очередь?

Я использую Winforms и таргетинг.Net 4.5 Я хочу повторять параллельную очередь до тех пор, пока в ней есть элементы. В моем приложении пользователь может добавлять и удалять элементы в параллельной очереди в любой момент. Образец кода: ConcurrentQue…
14 май '15 в 20:47
1 ответ

Что такое шаблон проектирования для асинхронной работы, которая может производить больше работы?

Я пытался элегантно обработать случай, когда асинхронный рабочий поток выдает результат и (возможно) идентифицирует больше работы, которая должна быть выполнена. Иначе говоря, если вы обходите дерево и выполняете работу на каждом узле, работник обра…
0 ответов

Преобразование параллельной очереди объектов класса в наблюдаемую коллекцию одного и того же объекта

У меня есть параллельная очередь, которая содержит объекты класса, я хочу взять эти объекты и поместить их в наблюдаемую коллекцию того же объекта класса. (в основном копирование / перемещение из параллельного очереди в коллекцию.) Здесь я добавляю …
5 ответов

Почему у ConcurrentQueue и ConcurrentDictionary есть методы "Try" - TryAdd, TryDequeue - вместо Add и Dequeue?

ConcurrentQueue имеет TryDequeue метод. Queue только что Dequeue метод. В ConcurrentDictionary здесь нет Add метод, но у нас есть TryAdd вместо. Мой вопрос: В чем разница между этими параллельными методами сбора? Почему они разные для одновременных …
3 ответа

ConcurrentQueue с многопоточностью

Я новичок в многопоточности концепций. Мне нужно добавить определенное количество строк в очередь и обрабатывать их с несколькими потоками. С помощью ConcurrentQueue что потокобезопасно. Это то, что я пытался. Но все элементы, добавленные в параллел…
04 янв '17 в 08:58
1 ответ

Почему странное поведение одновременной очереди?

Я пытаюсь понять параллельную очередь iOS GCD. Я сделал некоторый код для тестирования, но нашел что-то странное. код как показано ниже: _syncQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0); for (int index = 0; index &lt; 3; ++inde…
1 ответ

Шаблон для удаления элементов из параллельной очереди после просмотра

У меня один производитель и несколько потребителей. Я использую ConcurrentQueue. Я использую C#, но я думаю, что моя проблема - языковая независимость. Там могут быть неуникальные потребители. то есть более одного потребителя могут быть заинтересова…
19 янв '19 в 04:35
1 ответ

Как освободить ссылку из ConcurentQueue для элемента, исключенного из параллельной очереди с TryDequeue

Я использую ConcurrentQueue (C#, ASP.NET Core) для хранения задач для загрузки больших файлов. У меня очень большое потребление памяти даже после того, как элементы удалены из параллельной очереди. Элементы не стираются из памяти. Я понимаю поведени…
3 ответа

Как обрабатывать данные, поступающие из нескольких потоков в одном потоке (с ConcurrentQueue)?

У меня есть заказы, поступающие из нескольких потоков, и я хочу обработать эти данные в одном потоке. Если я правильно понял, способ сделать это с ConcurrentQueue. Я посмотрел на SO вопрос Как работать с многопоточностью с ConcurrentQueue;, но он не…
20 июл '18 в 13:10
1 ответ

Чтение и запись из очереди

Я сохраняю набор из ~300 растровых изображений в параллельной очереди. Я делаю это для программы потокового видео через TCP. Если сервер замедляется, я сохраняю полученные растровые изображения в этой очереди (буферизация). Я создал отдельный проект…
2 ответа

Все элементы в ConcurrentQueue<byte []> идентичны

У меня есть NetworkStream, который я использую для получения данных из другой программы. Данные поступают в виде байта [64], который я затем ставлю в очередь в ConcurrentQueue, чтобы другой поток мог удалить из очереди для последующего анализа. Очер…
11 сен '15 в 10:25
1 ответ

Удержание запросов до тех пор, пока сообщение перед ConcurrentQueue не работает

У меня возникла проблема, связанная с тем, что мой ConcurrentQueue в синглтоне не обрабатывает элементы в правильном порядке. Я знаю, что это FIFO, поэтому я думаю, что, может быть, очередь в памяти не то же самое, или что-то не так с моим Dequeue? …
11 июл '18 в 04:59
1 ответ

Что такое Rust, эквивалентный Intel tbb::concurrent_queue?

Я ищу эквивалент concurrent_queue из tbb модуля Intel в Rust. Я нашел несколько ящиков: multiqueue два-блокировка очередь перекладина-Deque и даже фьючерсный бассейн токарно-бассейн Я чувствую, что все они делают схожие вещи, однако в их документах …
0 ответов

Очереди и очереди нескольких типов

У меня есть событие, которое запускается COM-сервером до многих тысяч раз в секунду, оно предоставляет информацию о ценах в реальном времени с бирж. В моем коде я могу получить доступ к этому событию (C#): private static void COMDataStream_Price(int…
17 окт '16 в 10:59
1 ответ

Разделить ConcurrentLinkedQueue на две части с помощью Spliterator

У меня есть ConcurrentLinkedQueue, и я хочу разделить его на две половины и позволить двум отдельным потокам обрабатывать каждую. Я пытался использовать Spliterator, но я не понимаю, как получить разделенные очереди. ConcurrentLinkedQueue&lt;int[]&g…
2 ответа

Как обновить поток WPF UI одновременно?

У меня есть сканарио, где я читаю данные с диска многопоточным способом, используя TPL. У меня WPF GUI в качестве основного потока процессов, который отображает данные, прочитанные из этих потоков. Как я могу обновлять данные в WPF GUI в реальном вр…