Очереди и очереди нескольких типов
У меня есть событие, которое запускается COM-сервером до многих тысяч раз в секунду, оно предоставляет информацию о ценах в реальном времени с бирж. В моем коде я могу получить доступ к этому событию (C#):
private static void COMDataStream_Price(int SymbolNr, float Price, float Volume, DateTime Time)
{ // my code goes here }
Я хочу обработать входящие данные как можно быстрее, потому что я понял, что когда они очень заняты на биржах, частота событий еще выше, и иногда поток кажется застрявшим, и события больше не запускаются.
Так, какова была моя идея? Я хотел использовать ConcurrentQueue для постановки в очередь данных, и параллельно было запущено несколько рабочих потоков, которые снимают очереди с элементов для их обработки.
Но теперь я как-то застрял, потому что не могу поставить в очередь данные (которые состоят из наиболее важных значений int SymbolNr, float Price и DateTime Time) сразу в ConcurrentQueue, не заключая их в экземпляр (общего) класса. Поскольку этот подход кажется мне очень трудоемким, мы говорим о создании экземпляров, возможно, до 100000 объектов в секунду.
Я прав? Каков наилучший подход к решению этой ситуации?