首页 > TAG信息列表 > system-reactive

CodeGo.net>我如何在一个列表<> ToObservable阻塞?

我是第一次尝试RX,但有几个问题. 1)有没有更好的方法来完成我的收藏的异步? 2)我需要在线程上阻塞,直到所有异步任务完成为止,该怎么办? class Program { internal class MyClass { private readonly List<int> _myData = new List<int>() { 1, 2, 3, 4, 5, 6, 7,

CodeGo.net>使用IObservable实现异步方法

使用返回IObservable的方法来实现标准“ Being / End”异步模式的替代方法是否合理?在下面的代码中,我将使用Rx包装旧版API,以为其提供更好的接口. API上的Messages属性是一个热门的IObservable.我的问题是我认为如果在返回过滤响应的IObservable之前获得响应消息(即m.RequestId ==

C#-ReactiveExtensions BufferWithPredicate

Rx具有BufferWithTime,BufferWithCount和BufferWithTimeOrCount的方法,我想编写一个BufferWithPredicate方法,如下所示: public IObservable<IList<T>> BufferWithPredicate<T>(this IObservable<T> input, Func<T, IList<T>, bool> predicate) 本质上,除非谓词返

c#-如何在观察未完成的情况下或在长时间运行的可观察的热状态下在IObservable上使用组函数

我有以下可观察的 IObservable<int> observable = Observable.Range(0, 10); 我有以下订阅 observable.Subscribe(v => Console.WriteLine("Received value: " + v)); observable.Sum().Subscribe(s => Console.WriteLine("Sum so far: " + s)); 我想要的输出

观察与RX的WCF服务呼叫

我有一个WCF心跳服务,该服务接受来自客户端的活动.如果保持活动未在指定的时间内到达,则会引发超时并采取某些措施.现在,我正在尝试简化使用System.Threading.Timer的现有代码,并将其替换为基于RX的解决方案.我所缺少的是如何将WCF服务方法类转换为可观察的.我考虑的是以下内容: >在

c#-具有多个条件的可观察TakeUntil

向TakeUntil添加多个条件的最佳方法是什么?仅仅是将TakeUntil()调用彼此链接在一起的问题吗? IObservable<MyClass> propertyToObserve = ... var observable = propertyToObserve .TakeUntil(SomeCondition) .TakeUntil(OtherCondition) .Subscribe(value => ...); 解

等待观察者完成不使用锁

我有一个运行有多个观察者的可观察间隔的应用程序.每间隔0.5s,就会从Web服务器加载一些XML数据,然后观察者在后台线程上进行一些特定于应用程序的处理.一旦不再需要数据,就可以取消订阅和可观察的间隔,因此不再调用观察者的OnNext / OnCompleted / OnError.到现在为止还挺好. 我的

RxJava异步订阅

我有一个任务列表,应该在新线程中一个接一个地处理这些任务,然后结果应该由某个主线程显示在方法中.但是,这似乎不起作用,在主线程中调用了flatMap方法. 在这种情况下,为什么subscriptionOn方法不处理“线程切换”? 在另一个线程中执行某些工作的更好模式是什么? (除了使用Observable

响应式扩展:包装自定义委托事件

如何使用Observable.FromEvent将这些自定义委托包装在Rx中? public delegate void EmptyDelegate(); public delegate void CustomDelegate( Stream stream, Dictionary<int, object> values ); 解决方法:空代理 这是一个无参数的委托,但是流需要一种类型-Rx为此目的定义了Unit,以

的CombineLatest保留可观察的顺序吗?

我对以下重载感兴趣: public static IObservable<IList<TSource>> CombineLatest<TSource>(this params IObservable<TSource>[] sources); public static IObservable<IList<TSource>> CombineLatest<TSource>(this IEnumerable<IObser

我如何基于每个元素的条件循环可观察序列?

我有一个序列,我需要根据每个元素的条件重复该序列.例如,如果元素标记有“失败”标志,则我需要对其进行重新处理.我的问题是我找不到如何进行while循环操作. TakeWhile几乎是我所需要的,但是不会重复. /* * The following lines are just an example to comprehend the idea */ va

C#-SelectMany使用ReactiveExtensions占用大量内存

我想创建一个接收图像并返回一些派生对象的管道. 我正在使用一系列位图,对于每个位图我都执行任务(即异步).如此简单.但是,我发现内存消耗确实很高.为了说明问题,我创建了可以运行的测试. 请查看一下内存,因为它将占用多达400 MB的RAM. 我该怎么做才能避免占用太多内存?这里发生了什

CodeGo.net>如何关联功能输入和输出?

考虑下面的简单程序.它具有可观察的整数,并具有计算最近发布的整数是偶数还是奇数的功能.出乎意料的是,该程序会在报告该数字已更改之前报告最近的数字是否为偶数/奇数. static void Main(string[] args) { int version = 0; var numbers = new Subject<int>(); IObse

为什么每个订阅都完全解析IObservable链?

我有一个问题,如何解决IObervable链. 我认为,如果多个观察者订阅同一个IObservable,则只有在流发出新项目时,整个链才会解析一次. 相反,似乎每个订阅都运行整个链. 如果我的整个程序逻辑是使用IObservables并将它们链接在一起构成的,那么在我看来,代码正在不必要地运行具有相同结果

c#-如何使用Reactive Extensions(Rx.Net)等待值或直到经过固定时间

我想等待(阻塞)线程,直到某个时间过去或另一个流泵入一个值,我以为以下方法可以实现此目的,但是由于第一个流为空,因此它引发了异常, // class level subject manipulated by another thread... _updates = new Subject<Unit>(); ... // wait for up to 5 seconds before carr

c#-使用观察值测量响应时间

给定Observable A代表传入的请求… interface IRequest { string Id { get; } } IObservable<IRequest> requests; 和代表响应的可观察B … IObservable<string> responses; 我需要测量产生响应所需的时间.我当前的解决方案如下所示.这行得通,但我不确定是否可以简化或更简

c#-根据输入序列的元素将IObservable转换为另一个故障或完成的序列

我正在实现一个进程间消息传递系统,例如客户端可以从服务器请求某些数据.服务器需要能够以部分答复的形式发送回其答复,并且还需要能够通知客户以防万一发生异常. 目前,我正在通过3种消息类型执行此操作: class PartialResponse : ResponseMessage { ... } class ResponseError : R

扩展名-返回相同的可观察值还是创建新的?

我正在尝试使用Rx设计服务层抽象.我已经使用FromAsyncPattern打包了所有Web服务调用.我将有多个ViewModel订阅这些可观察对象,有些可以有多个订阅. >应该创建只读IObservable< T>我的ServiceProxy类(单例)中的属性,并在构造函数中构造一次,还是应该每次在服务方法中创建新的可观察

C#-仓库中连续(异步)对象流的可观察(Rx)

我有一个类型为Item的存储库.我的目标是让该存储库使用Observable提供Item的Observable或基本上是“流”. 我是RX的入门者,但我认为我对基础知识有很好的了解.我的问题是找到一种使Observable保持活动状态的方法,并在项进入时将其手动推入(可能是套接字或其他基于异步的项).基本上

首页> C#>如何解决此问题的反应式扩展?

我有一个关于反应式扩展的设计问题,这是方案: 我有一个汽车对象,该汽车对象有多个验证对象.每个验证对象都会将验证结果发送到汽车类.验证结果可以是成功或错误.当验证发送错误时,我想停下汽车,而当同一验证发送成功时,我想再次启动汽车.换一种说法: 所有验证都会不断将验证结果发送

CodeGo.net>如何监视FTP传入文件夹中的新上传的文件?

换句话说,如何使用IIS支持的FTP服务器和.NET在计算机上启动一些新上传文件到FTP服务器的自定义处理? 澄清度 这将在承载FTP服务器的计算机上运行.就我而言,权限不是问题. It seems I’d need to ask上传实体添加一个列表文件,该列表文件在实际数据文件完全上传后发送.想象有一个实际

IObservable等待获取所有元素错误

我有这个课: public class TestService { public IObservable<int> GetObservable(int max) { var subject = new Subject<int>(); Task.Factory.StartNew(() => {

C#-反应性扩展ControlScheduler

好吧,我正在使用ReactiveExtensions事件处理程序来处理我的应用程序事件,我也使用ControlScheduler以在ui线程上运行处理程序.但是,尽管使用了ControlScheduler,最近我还是遇到了“跨线程”异常,我不知道这是什么问题 码: Observable.FromEventPattern<string>(cc, "UiAlertMessage

c#-WinRT上的Rx-在UI线程上分派

我目前刚刚开始使用Rx,到目前为止,它非常有用.但是,从异步方法创建可观察对象并用结果更新UI时遇到了问题.我(不出所料)通过以下代码收到RPC_E_WRONG_THREAD错误: IDisposable service = null; service = Observable.FromAsync(fn).Subscribe(videoColl => { foreach (var vid

CodeGo.net>有一个“热”等效的Observable.Interval

如果我执行以下操作: var obs = Observable .Interval(TimeSpan.FromSeconds(1)) .Select(x => "A" + x.ToString()); obs .Subscribe(x => Console.WriteLine("From first: " + x.ToString())); Observable .Timer(TimeSpan.FromSeconds(3)