c# - 如何将以下类转换为 IObservable?

标签 c# system.reactive

我有以下类(class)

namespace TickRateEntity
{
    public struct TickRateData
    {
        public double tickrate;
    }

    public class TickRate
    {
        private TickRateData tickRateData;
        //etc
    }
}

如何更改这些类,以便每隔 n 分钟,TickRate 或 TickRateData 数据发布双倍 tickrate

最佳答案

假设您的 tickRateData 以某种方式填充,那么您可以执行以下操作:

public class TickRate : IDisposable
{
    private TickRateData tickRateData;
    private readonly IDisposable _subscription;

    public IObservable<double> Stream { get; }

    public TickRate(double intervalInMinutes)
    {
        var stream = Observable.Interval(TimeSpan.FromMinutes(intervalInMinutes))
                               .Select(_ => tickRateData.tickrate)
                               .Publish();

        _subscription = stream.Connect();

        Stream = stream;
    }

    public void Dispose()
    {
        _subscription?.Dispose();
    }
}

关于c# - 如何将以下类转换为 IObservable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37017479/

相关文章:

c# - RX : How to process n buffered items from a sequence then wait t seconds before processing the next n items?

c# - Reactive Extensions是否可以满足顺序不变性,同步和多线程?

kotlin - Observable withLatestFrom 值

c# - .Net Core 在不同操作系统上查找可用磁盘空间

c# - 附加到工厂实例化的单例事件 - 什么是干净的方法?

java - 在 Android 中使用 RX2 时出现 NetworkOnMainThreadException

c# - 动态延迟 IObservable 值的延迟函数

c# - 如何从控制台读取用户输入?

c# - 如何强制删除Asp.net core中另一个进程使用的文件

c# - 有关分层应用程序中身份验证和授权的书籍/资源