Быстрая запись / протоколирование данных в отдельном потоке в C #

Мы разрабатываем приложение, которое непрерывно считывает данные с ряда внешних аппаратных устройств. Скорость передачи данных составляет от 0,5 МБ до 10 МБ / с, в зависимости от конфигурации внешнего оборудования.

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

Мы думаем об использовании синхронизированной очереди для этой цели. Но мы думали, что это колесо, должно быть, изобреталось уже очень много раз, поэтому мы должны попросить сообщество SO внести свой вклад.

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

8
задан svick 28 August 2015 в 13:10
поделиться