What problem does it solve?
Composing event streams in C# with System.Reactive (Rx.NET) suffers from subscriptions silently dying on exceptions, heavy IScheduler abstractions, and hard-to-find subscription leaks. This Skill teaches R3, Cysharp's modern reimplementation of Reactive Extensions, so you can build resilient push-based pipelines with a corrected error contract and testable scheduling.
Core Features & Use Cases
- Resilient error handling: Errors route to OnErrorResume without terminating the subscription, with OnErrorResumeAsFailure and Catch for classic terminate-and-recover semantics.
- Explicit async dispatch: Async operators like SubscribeAwait and SelectAwait take an AwaitOperation mode (Sequential, Drop, Switch, Parallel) for latest-wins search, debounced submit, and ordered processing.
- Testable scheduling and concurrency: TimeProvider and FrameProvider replace IScheduler, with FakeTimeProvider and FakeFrameProvider enabling deterministic tests, plus Synchronize and SynchronizedReactiveProperty for multi-threaded producers.
- Use Case: Implement search-as-you-type by debouncing text changes with Debounce, cancelling stale requests via AwaitOperation.Switch, and bridging results to Task or IAsyncEnumerable.
Quick Start
Ask the assistant to build an R3 pipeline that debounces a search text property by 300 milliseconds and calls an async API with latest-wins cancellation.