0

我有一个由 COM 服务器每秒触发数千次的事件,它提供来自交易所的实时价格信息。在我的代码中,我可以访问此事件(C#):

    private static void COMDataStream_Price(int SymbolNr, float Price, float Volume, DateTime Time)
    { // my code goes here }

我想尽快处理传入的数据,因为我意识到当它在交换非常繁忙时,事件的频率甚至更高,有时流似乎被卡住并且不再触发任何事件。

那么我的想法是什么?我想使用 ConcurrentQueue 对数据进行排队,并并行运行多个 Workerthreads,这些线程将项目出列以处理它们。

但是现在我不知何故被卡住了,因为我无法将数据(由最重要的值 int SymbolNr、float Price 和 DateTime Time 组成)一次排入 ConcurrentQueue 而不将它们包装到(通用)类的实例中。因为这种方法在我看来非常耗时,所以我们正在讨论每秒最多实例化 100.000 个对象。

我对吗?处理这种情况的最佳性能方法是什么?

4

0 回答 0