I have
I have an observable sequence made from touch events:
var touchEvents = Observable.Merge(
Observable.FromEventPattern<RoutedEventArgs>(touchRect, nameof(touchRect.PointerEntered)),
Observable.FromEventPattern<RoutedEventArgs>(touchRect, nameof(touchRect.PointerExited)),
Observable.FromEventPattern<RoutedEventArgs>(touchRect, nameof(touchRect.PointerReleased)));
I observe until a specific condition is met:
async void Start()
{
_scanSlapObservable = touchEvents.Throttle(TimeSpan.FromSeconds(1))
.Where(e => countOfPointers == expectedFingers.Length)
.Select(e => new Response())
.FirstOrDefaultAsync();
Response response = await _scanSlapObservable;
if (response != null)
{
//do something
}
}
What I need
When I call Start()
twice, I want to interrupt the existing _scanSlapObservable
, so it either returns null or throws an exception.
How do I interrupt the existing IObservable sequence?