草庐IT

observer

全部标签

c# - 什么是 System.Reactive.Linq.Observαble? (注意阿尔法)

System.Reactive.Linq.Observαble是什么?请注意用希腊字母“alpha”代替“a”。Observable不Observable在程序集中的这个命名空间中找到了大约一百个类(都是internal)//C:\ProgramFiles(x86)\MicrosoftSDKs\ReactiveExtensions\v2.0\Binaries.NETFramework\v4.0\System.Reactive.Linq.dll//System.Reactive.Linq,Version=2.0.20823.0,Culture=neutral,PublicKeyToken

c# - Observable.FromEvent 和 CreateDelegate 参数映射

我在看的实现Observable.FromEvent(add,remove)我正在努力了解它是如何工作的。让我们说TEventHandler是标准:publicdelegatevoidEventHandler(objectsender,EventArgse);那么让我费解的代码是:TEventHandlerd=(TEventHandler)Delegate.CreateDelegate(typeof(TEventHandler),(object)newAction(observer.OnNext),typeof(Action).GetMethod("Invoke"));(n.b我已将此

c# - 使用 RX 的最佳实践——返回一个 Observable 还是接受一个 Observer?

使用ReactiveExtensions,我可以想出多种方法来模拟具有副作用/IO的操作-比如从聊天室订阅消息。我可以接受参数(比如聊天室)和一个Observer,返回一个Disposable,即DisposableSubscribeTo(stringchatRoom,Observerobserver)或者在给定参数的情况下返回一个Observable,即ObservableGetObservableFor(stringchatRoom)当返回一个Observable时,我还可以选择将其设置为“热”或“冷”,即在调用我的方法时或在订阅observable时执行实际订阅。此外,我可以使o

微信小程序observers数据监听器的使用

微信小程序observers数据监听器的使用数据监听器可以用于监听和响应任何属性和数据字段的变化。1、observers使用的前提条件在微信小程序中数据监听器的使用是有几个前提条件的,否则是无法使用的小程序的基本版本库要达到要求,从小程序基础库版本2.6.1开始支持。只能使用在自定义组件中,在页面中是无法使用的2、如何使用observers在自定组件的使用有两个不同位置进行监听数据的变化,而不同的位置,所监听的数据也是不一样的。在自定义组件的properties中的数据属性此处是监听父组件传过来数据的变化,达到引起该子组件数据变动及重新渲染Component({/***组件的属性列表*/pro

c# - Observable.Interval 对高频事件有用吗?

我正在使用Observable.Interval来测试一段特定的客户端/服务器代码在不同负载下的执行情况。但它似乎有一些奇怪的行为。Observable.Interval(timespan=0)尽快产生事件,例如每秒800万个事件。这似乎没问题。Observable.Interval(0只产生1个事件,然后什么都不产生。Observable.Interval(1ms以大约请求的速率生成事件,高度量化,并且最多仅每秒64个事件。我可以理解它不一定在下面使用高分辨率计时器,但令人困惑的是它在三个区域中具有如此完全不同的行为。这是预期的行为,还是我用错了?如果是预期的,那么是否有替代Obse

c# - Observable.Where 与异步谓词

有没有一种方便的方法可以将异步函数用作可观察对象上的Where运算符的谓词?例如,如果我有一个整洁但可能长时间运行的函数定义如下:TaskRank(objectitem);是否有将其传递到Where并保持异步执行的技巧?如:myObservable.Where(asyncitem=>(awaitRank(item))>5)过去,当我需要这样做时,我会使用SelectMany并将这些结果与原始值一起投影到新类型中,然后根据那个。myObservable.SelectMany(asyncitem=>new{ShouldInclude=(awaitRank(item))>5,Item=ite

c# - Observable.Defer - 需要澄清它到底做了什么

假设我想生成一个异步随机数流,每100毫秒抽出一个新值。在尝试提出解决方案时,我的第一次尝试看起来像这样:varrandom=newRandom();Observable.Start(()=>random.Next()).Delay(TimeSpan.FromMilliseconds(100)).Repeat().Subscribe(Console.WriteLine);如果您尝试运行它,您会注意到它只是一遍又一遍地重复相同的值。好吧,我想我误解了Repeat的工作原理。玩了一会儿之后,我想到了这个并且它起作用了:varrandom=newRandom();Observable.Def

c# - 在不跳过值的情况下节流 Rx.Observable

Throttle方法会在其他人跟随得太快时跳过可观察序列中的值。但我需要一种方法来延迟它们。也就是说,我需要在不跳过任何项的情况下设置项之间的最小延迟。实际例子:有一个网络服务接受请求的速度不超过每秒一次;有一个用户可以添加单个或批量的请求。如果没有Rx,我将创建一个列表和一个计时器。当用户添加请求时,我会将它们添加到列表中。在计时器事件中,我将检查列表是否为空。如果不是,我会发送请求并删除相应的项目。带锁和所有的东西。现在,使用Rx,我可以创建Subject,在用户添加请求时添加项目。但我需要一种方法来确保Web服务不会因应用延迟而被淹没。我是Rx的新手,所以我可能遗漏了一些明显的东

c# - 如何在 C# 中制作 Observable Hashset?

目前我在WPF应用程序中使用ObservableCollection,该应用程序是Conway的生命游戏的实现,适用于大约500个单元格,但之后它开始显着减慢。我最初使用HashSet编写应用程序,但找不到任何方法将单元格绑定(bind)到Canvas。有没有办法让我的HashSet通知它的绑定(bind)对象发生变化?我的Cell类是一个简单的整数X,Y对,如果该对存在,则该单元格还活着,否则就死了。Cell实现INotifyPropertyChanged并覆盖GetHashCode和Equals。我无法让单元格显示任何更改,只是单元格在加载后立即出现。有什么方法可以将哈希集绑定(b

c# - Observable.Timer() : How to avoid timer drift?

在C#(.NET4.0)应用程序中,我使用ReactiveExtensions(2.0.20823.0)生成时间边界以将事件分组为聚合值。为了简化对生成的数据库的查询,这些边界需要在整个小时(或下例中的秒)对齐。使用Observable.Timer():vartime=DefaultScheduler.Instance;varstart=newDateTimeOffset(time.Now.DateTime,time.Now.Offset);varspan=TimeSpan.FromSeconds(1);start-=TimeSpan.FromTicks(start.Ticks%100