如何通过容错来阅读无穷无尽的流

目前我正在开发一个应用程序,它从Twitter api读取流并将其解析为对象。 目前我读取了流并使用DataContractJsonSerializer中的ReadObject来创建我的对象。

这很棒!!

但是:我有点担心在我的程序赶上流程(互联网速度减慢或w / e)的情况下会发生什么,并且没有足够的数据来解析…该方法可能会引发exception,但我想等待新数据,然后重试相同的对象并继续。

此外,我想知道如何使方法更稳定,以防损坏的数据将进入流或类似的东西。

在此先感谢任何答案/想法:)

如果您的程序赶上推特提要,DCJS应该阻止,直到您获得足够的数据来完成阅读。 这通常不是一个问题,因为流旨在隐藏读者的延迟。

更有可能的是你不会赶上,而是继续落后,直到你的内存耗尽,抛出一个OOME,程序将崩溃。

我建议而不是尝试动态解析流,将其写入类似文件的内容并从中读取(甚至可以并行使用滚动文件或其他内容)。