我有一个类,该类调用Web服务以异步检索数据。为了提高性能,我实现了客户端缓存,该缓存检查请求的数据是否在本地可用。该类返回存储在缓存中的所有数据,并调用Web服务以获取剩余数据。我可以将缓存的数据返回给呼叫者,然后继续进行网络呼叫,还是我必须进行呼叫并返回完整的数据集?在同步环境中,我可以yield return与Tasks一起使用,并且无法实现异步/等待收益。我怎么解决这个问题?
2 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
这些建议都无法完美地解决我的问题,但可以结合使用。
首先,我使用TPL DataFlow库创建了一个管道来从我的源中获取数据。然后将结果发布到BufferBlock<T>
末尾的,作为暴露给最终用户IObservable<T>
。这具有额外的好处,即我现在可以通过其他块轻松查询相关数据。
- 2 回答
- 0 关注
- 175 浏览
添加回答
举报
0/150
提交
取消