将Twitter流复制到对象:我可以落后吗?

时间:2012-01-16 14:59:56

标签: c# .net json twitter-streaming-api

目前我正在开发一个应用程序,它从Twitter API读取流并将其解析为对象。目前我读取了流并使用ReadObject(...)中的DataContractJsonSerializer来创建我的对象,然后将它们写入内存中的缓冲区(不要担心我是异步地从缓冲区中读取它们而且我保持最大值我开始覆盖旧对象之前的100个对象。)

这很棒!!但是:我是否保证读/写能够跟上实际的流。如果不是这样的话;我该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以使用BlockingCollection作为缓冲区,而不是覆盖旧条目,尝试添加超过100个项目会在您的读者赶上时阻止。

答案 1 :(得分:0)

据我所知,你不会有这种保证。如果你有100个缓冲对象的限制,你可能会到达那个缓冲区充满新对象的点,一个新的对象进来并覆盖一些东西。实际上这是一个权衡,你在缓冲区中允许的越多,安全性就越高,不会落后,而不是使用更多的RAM。

我能看到的唯一选择是以某种方式编写自己的调度程序,通过从流中读取新的对象来处理缓冲对象。