Как читать файл с чередованием одновременно, используя реактивные расширения
Я новичок в реактивных расширениях, и я хотел бы использовать его (в C #) для чтения файла, который содержит несколько потоков, которые чередуются. В основном файл в форматеABCDABCDABCD...
, Я бы предпочел читать файл последовательно и разделять потоки (т.е.AAA..
, BBB..
и т. д.) и обрабатывать каждый поток параллельно, используя отдельные потоки для каждого потока.
Должна быть некоторая форма буферизации, чтобы гарантировать, что каждый поток может оставаться максимально занятым (конечно, в определенных пределах). Не все потоки обязательно начинаются одновременно, и в этом случае для задержанных потоков необходимо пропустить несколько элементов. В этом случае буферизация может сократить разрыв.
Элементы в файле маленькие (4 байта), поэтому они довольно болтливы. Поэтому я также ищу способ эффективно с этим справиться.
Я начал с создания перечислимого файла для чтения. Это может быть сделано для предоставления структуры, которая содержит идентификатор потока, или потоки могут быть разделены на основе порядка (номер элемента по модулю количества потоков). Последнее, вероятно, более эффективно, хотя.