从C#中的Observable获取最新值的最简单方法是什么

时间:2019-09-10 14:52:51

标签: c# system.reactive

这个问题是非常基本的,但我仍在努力,因为这不是我的主要工作领域。我正在尝试调试蓝牙连接,并希望提取连接的当前RSSI值并将其记录在日志中。

我已经搜索了这个问题,但是发现大多数解决方案都超出了我的范围,或者看起来过于复杂,因为我只想要最新的价值。

我正在使用Bluetooth插件,该插件具有用于称为IDevice的设备的接口。该接口具有一个ReadRssi方法,该方法应该能够以某种方式产生int,而我需要该接口中的最新int。

IObservable<int> ReadRssi();

在谷歌搜索之后,我得到的最接近的是:

module.Device.ReadRssi().Subscribe(v => 
{
    currentRSSI = v;
    Logger.LogInfo(LogOperationType.Convert, $"Current RSSI {currentRSSI}");
});

其中Device是模块类的一部分。

上面的代码可以编译,并且应用程序可以正常运行,但是没有任何值输出到日志中。这可能是一个范围问题,或者我可能在滥用某些东西,但是如上所述,我的目标是以不干扰的方式仅从可观察对象中获取最后一个值。在这种情况下,丑陋的骇客就足够了,所有帮助将不胜感激。

0 个答案:

没有答案