0

考虑以下场景:

使用 Rx 监听来自事件或超时的消息

我该如何处理?我想与“Observable.Amb”(在“A”之后)一起使用,但必须始终手动创建订阅,这可能会使停止或释放资源变得复杂。

4

1 回答 1

1

Amb确实是一个不错的选择:

var bSignal = bSource.Select(b => true).Take(1);
var timeoutSignal = Observable.Timer(TimeSpan.FromSeconds(2)).Select(t => false);
var resultSignal = Observable.Amb(bSignal, timeoutSignal);
var result = aSource.Select(a => resultSignal).Switch();
于 2013-09-19T19:07:06.000 回答