Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Subject<bool> subjEvent = new Subject<bool>();
- Subject<int> subjValue = new Subject<int>();
- IScheduler sched = new EventLoopScheduler(ts => new Thread(ts));
- subjEvent.ObserveOn(sched).Subscribe(
- r =>
- {
- if(r)
- {
- Console.WriteLine("Connected On: t{0}", Thread.CurrentThread.ManagedThreadId);
- subjValue.ObserveOn(sched).Subscribe(
- x => Console.WriteLine("Recieved On: t{0}", Thread.CurrentThread.ManagedThreadId));
- }else{
- Console.WriteLine("Disconnect On: t{0}", Thread.CurrentThread.ManagedThreadId);
- }
- }
- );
- subjEvent.OnNext(true);
- for(int i=0; i< 10; i++)
- {
- subjValue.OnNext(i);
- }
- subjEvent.OnNext(false);
- subjValue.OnCompleted();
- subjEvent.OnCompleted();
- var query =
- from b in subjEvent.Do(x =>
- Console.WriteLine("{0}onnected On: t{1}",
- x ? "C" : "Disc",
- Thread.CurrentThread.ManagedThreadId))
- select b ? subjValue : Observable.Empty<int>();
- query.Switch().Subscribe(x =>
- Console.WriteLine("Recieved On: t{0}",
- Thread.CurrentThread.ManagedThreadId));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement