.NET 响应式扩展与程序集详解
1. 响应式扩展的异步操作
在处理异步操作时,我们可以为每个订阅者创建新任务。以下是一个示例代码:
public static IObservable<string> GetWebPageAsObservable(Uri pageUrl) { return Observable.FromAsync(() => { var web = new WebClient(); return web.DownloadStringTaskAsync(pageUrl); }); }这种方式在订阅者众多时可能不是最优选择,但在没有订阅者时会更高效。
Windows 运行时通过IAsyncOperation和IAsyncOperationWithProgress接口定义了一些异步模式。System.Reactive.Windows.Foundation命名空间提供了扩展方法,用于在这些模式和 Rx 之间进行映射。
2. 时间相关操作符
2.1 Interval 操作符
Observable.Interval方法返回一个序列,该序列会按照TimeSpan参数指定的间隔定期生成值。示例代码如下: