| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using System.Reactive;using System.Reactive.Linq;namespace SilverlightApplication{    public partial class MainPage : UserControl    {        public MainPage()        {            InitializeComponent();            Loaded += new RoutedEventHandler(MainPage_Loaded);        }        void MainPage_Loaded(object sender, RoutedEventArgs e)        {            var portableClass = new PortableClassLibrary.PortableClass();            // Create timer and route output to list1            portableClass.CreateTimer(10, TimeSpan.FromSeconds(1.5))                .Buffer(2)                .ObserveOnDispatcher()                .Subscribe(items =>                {                    foreach (var item in items)                        list1.Items.Add(item);                }, onCompleted: () =>                {                    list1.Items.Add("Finished");                });            // Create list observer and route output to list1, but specify scheduler instead of using SubscribeOnDispatcher            var scheduler = System.Reactive.Concurrency.DispatcherScheduler.Current;            portableClass.CreateList(scheduler)                .Delay(TimeSpan.FromSeconds(1))                .ObserveOn(scheduler)                .Subscribe(item =>                {                    list2.Items.Add(item);                }, onCompleted: () =>                {                    list2.Items.Add("Finished");                });        }    }}
 |