Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

ReactiveProperty v2.7.4をリリースしました

$
0
0

www.nuget.org

@neueccさんが、またプルリクをくれました。UniRxからポーティングされたクラスが1つ追加されました。 MessageBrokerというRxっぽく使えるMessenger的なクラスになります。

基本的に以下のような使い方になります。

// 購読
MessageBroker.Default.Subscribe<SampleClass>(x => Console.WriteLine(x));
// ToObservableでRxのメソッド使い放題
MessageBroker.Default.ToObservable<SampleClass>()
    .ObserveOn(Dispatcher)
    .Subscribe(x => Console.WriteLine(x));

// 発行
MessageBroker.Default.Publish(new SampleClass());

非同期版も用意されています。

AsyncMessageBroker.Default.Subscribe<SampleClass>(async x => 
{
    Console.WriteLine(x);
    return Task.Delay(TimeSpan.FromSeconds(2));
});

var d = AsyncMessageBroker.Default.Subscribe<SampleClass>(async x => 
{
    Console.WriteLine(x);
    return Task.Delay(TimeSpan.FromSeconds(4));
});

// 全てのSubscribeが終了するまで待ちます
await AsyncMessageBroker.Default.PublishAsync(new SampleClass());

// 購読解除
d.Dispose();
await AsyncMessageBroker.Default.PublishAsync(new SampleClass());

一応、上記のようなDefaultでデフォルトインスタンスを使いまわすことがほとんどだと思いますが自分でインスタンス管理したい場合は特に制約は設けてないので好きにnewするなりDIコンテナに登録しちゃってください。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>