Example #1
0
    public static void Run()
    {
        Console.WriteLine($"{nameof(ObservableDemo)} Demo");

        var observer             = new HelloWorldObserver();
        var helloWorldObservable = new HelloWorldObservable();

        helloWorldObservable.Subscribe(observer);

        Console.WriteLine();
    }
Example #2
0
        private void DoHelloWorld()
        {
            //  IObservable<T>接口表示发送通知 (提供程序)
            IObservable <string> myObservable = Observable.Create((Func <IObserver <string>, IDisposable>)DoJobs);

            // IObserver<T>接口表示接收它们 (观察者) 的类。
            IObserver <string> myObserver = new HelloWorldObserver(this);


            // 使用这个, 需要 NuGet 添加 System.Reactive.Windows.Forms
            ControlScheduler cs = new ControlScheduler(this);

            myObservable
            // 可观察对象线程,跑在新的线程上.
            .SubscribeOn(NewThreadScheduler.Default)
            // 观察者线程,跑到 WinForm 控件的线程上.
            .ObserveOn(cs)
            .Subscribe(myObserver);
        }