为了账号安全,请及时绑定邮箱和手机立即绑定

从异步方法返回部分结果

从异步方法返回部分结果

C#
胡子哥哥 2021-03-29 12:14:22
我有一个类,该类调用Web服务以异步检索数据。为了提高性能,我实现了客户端缓存,该缓存检查请求的数据是否在本地可用。该类返回存储在缓存中的所有数据,并调用Web服务以获取剩余数据。我可以将缓存的数据返回给呼叫者,然后继续进行网络呼叫,还是我必须进行呼叫并返回完整的数据集?在同步环境中,我可以yield return与Tasks一起使用,并且无法实现异步/等待收益。我怎么解决这个问题?
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

这些建议都无法完美地解决我的问题,但可以结合使用。

首先,我使用TPL DataFlow库创建了一个管道来从我的源中获取数据。然后将结果发布到BufferBlock<T>末尾的,作为暴露给最终用户IObservable<T>。这具有额外的好处,即我现在可以通过其他块轻松查询相关数据。


查看完整回答
反对 回复 2021-04-10
  • 2 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信