【发布时间】:2013-05-22 17:12:24
【问题描述】:
我正在使用 .net 框架 4.0 以 Windows 形式开发股票市场应用程序。我正在从交易所实时获取报价。我能够实时接收报价。在我的场景中,我必须创建一个线程,它将在通用集合中写入实时提要,而其他持续运行的后台线程将从集合中获取它并进行进一步处理。为了实现这一点,我使用了 ConcurrentDictionary 和 ConcurrentQueue 的组合。键包含符号名称和值包含 ConcurrentQueue。这就是它的实现方式Check first answer
这工作得很好我唯一担心的是延迟。由于股票价格必须实时波动,此过程会导致 1 秒延迟。这种情况是否可以通过其他逻辑实现,或者我可以通过某种方式提高 ConcurrentDictionary 或 ConcurrentQueue 的性能以避免延迟?
【问题讨论】:
-
你还没有做任何诊断。从基础开始:究竟是什么导致了延迟?锁争用或其他同步开销?还是您自己处理?
-
(如果这不是 C#,并且如果您不需要数据存档,我会建议查看
rrdtool,这是一个明确设计用于存储固定数量的高性能。) -
从 concurrentDictionary 或 concurrentqueue 写入或读取导致延迟