예제 #1
0
        public MainWindow()
        {
            InitializeComponent();

            AsyncMessageBroker = new AsyncMessageBroker()
                                 .AddConfirmMessage()
                                 .AddTo(Disposables);
            DataContext = new MainWindowViewModel(AsyncMessageBroker);
        }
        public async Task Async()
        {
            var mb = new AsyncMessageBroker();
            var l = new List<string>();

            var d1 = mb.Subscribe<int>(async x => l.Add("a:" + x));
            var d2 = mb.Subscribe<int>(async x => l.Add("b:" + x));

            await mb.PublishAsync(100);
            l.Is("a:100", "b:100"); l.Clear();

            d2.Dispose();
            await mb.PublishAsync(200);
            l.Is("a:200"); l.Clear();

            d1.Dispose();
            await mb.PublishAsync(300);
            l.Count.Is(0);
        }
예제 #3
0
    public async Task Async()
    {
        var mb = new AsyncMessageBroker();
        var l  = new List <string>();

        var d1 = mb.Subscribe <int>(async x => l.Add("a:" + x));
        var d2 = mb.Subscribe <int>(async x => l.Add("b:" + x));

        await mb.PublishAsync(100);

        l.Is("a:100", "b:100"); l.Clear();

        d2.Dispose();
        await mb.PublishAsync(200);

        l.Is("a:200"); l.Clear();

        d1.Dispose();
        await mb.PublishAsync(300);

        l.Count.Is(0);
    }
예제 #4
0
 public HybridMessageBroker()
 {
     _messageBroker      = new MessageBroker();
     _asyncMessageBroker = new AsyncMessageBroker();
 }