Я пишу многопоточное приложение, и у меня возникают проблемы с доступом к очереди 2 потоков
Поток 1 помещает элементы в очередь для обработки Поток 2 удаляет элементы из очереди для обработки
Поток 1 запускается раз в минуту из-за характера данных, которые он извлекает.Поток 2 всегда работает, он удаляет элемент из очереди и спит в течение 100 мс.Я должен сделать это, чтобы убедиться, что я не перегружаю службу, которую она вызывает при удалении элемента из очереди.
Я предполагаю, что оба потока должны установить блокировку в очереди при добавлении или удалении элементов из нее.Есть ли еще какие-то соображения?Например, поток 1 имеет блокировку, а поток 2 пытается получить к ней доступ.Неужели поток 2 просто знает, что ждать и возобновить после снятия блокировки?
Было бы предпочтительнее использовать ConcurrentQueue и просто TryDequeue, а в случае сбоя просто перейдите в режим ожидания 100 мс?Заранее спасибо