目前我正在开发一个应用程序,该应用程序从Twitter api读取流并将其解析为对象。目前,我读取了流,并使用DataContractJsonSerializer中的ReadObject来制作我的对象。
这太棒了!!
但是:我有点担心万一我的程序赶上了流(互联网速度减慢或w/e),并且没有足够的数据来解析,会发生什么。。。该方法可能会引发异常,但我希望等待新的数据,然后重试相同的对象并继续。
此外,我还想知道如何使该方法更加稳定,以防损坏的数据进入流或类似的情况。
提前感谢您的任何答案/想法:)
如果您的程序赶上了twitter提要,DCJS应该只阻塞,直到您获得足够的数据来完成读取。这通常不是一个问题,因为流是为了向读者隐藏延迟而设计的。
更有可能的是,你不会赶上,而是一直落后,直到内存耗尽,抛出OOME,程序就会崩溃。
我建议,与其尝试动态解析流,不如将其写入类似文件的文件中并从中读取(甚至可以并行,使用滚动文件或其他东西)。