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();