Jak jednocześnie czytać plik z przeplotem przy użyciu rozszerzeń reaktywnych

Jestem nowy w reaktywnych rozszerzeniach i chciałbym go użyć (w c #) do odczytania pliku zawierającego kilka strumieni, które są przeplatane. Zasadniczo plik ma formatABCDABCDABCD.... Wolałbym czytać plik sekwencyjnie i oddzielać strumienie (tjAAA.., BBB..itp.) i przetwarzaj każdy strumień równolegle, używając osobnych wątków dla każdego strumienia.

Musi istnieć jakaś forma buforowania, aby upewnić się, że każdy strumień może być zajęty, na ile to możliwe (oczywiście w granicach). Nie wszystkie strumienie zaczynają się koniecznie w tym samym czasie, w takim przypadku pewna liczba elementów musi zostać pominięta dla opóźnionych strumieni. W tym przypadku buforowanie może wypełnić lukę.

Elementy w pliku są małe (4 bajty), więc są dość rozmowne. Dlatego też szukam sposobu na skuteczne rozwiązanie tego problemu.

Zacząłem od stworzenia wyliczalnego pliku do odczytu. Można to zrobić, aby dostarczyć strukturę, która zawiera ID strumienia, lub strumienie mogą być rozdzielone na podstawie kolejności (numer elementu modulo liczba strumieni). Ten ostatni jest prawdopodobnie bardziej wydajny.

questionAnswers(2)

yourAnswerToTheQuestion