如何在单击列表框时生成新的Rx事件
本文关键字:Rx 事件 单击 列表 | 更新日期: 2023-09-27 18:27:01
我有一个简单的WPF应用程序,它包含一个链接列表。我想从中选择一些,将它们添加到一个"可观察列表"中并订阅它。然后,观察者回调将下载链接,并将继续下一个链接(如果有睡眠的话)。我还可以更新我的UI,让用户知道项目已经进行。
有人能帮我做这个吗
非常感谢。
我会使用Observable.FromEventPattern首先将链接选择事件的列表框转换为Uri的Observable。
接下来,我将编写一个下载链接的扩展方法。
public static IObservable<bool> DownloadLink(this IObservable<Uri> source)
{
return Observable.Create<bool>(observer =>
{
return source
.Subscribe(onNext: async link =>
{
using (var client = new System.Net.Http.HttpClient())
{
var result = await client.GetStringAsync(link);
if (isSuccess)
observer.OnNext(true);
else
observer.OnNext(false);
}
}, onError: observer.OnError, onCompleted: observer.OnCompleted);
});
}
最后,把它挂起来。
uriObservable.DownloadLink().ObserveOnDispatcher().Subscribe( // update ui logic here );