C# Language
リアクティブエクステンション(Rx)
サーチ…
TextBoxでのTextChangedイベントの監視
Observableは、TextBoxのTextChangedイベントから作成されます。また、入力が最後の入力と異なる場合、および0.5秒以内に入力がなかった場合にのみ、すべての入力が選択されます。この例の出力は、コンソールに送信されます。
Observable
.FromEventPattern(textBoxInput, "TextChanged")
.Select(s => ((TextBox) s.Sender).Text)
.Throttle(TimeSpan.FromSeconds(0.5))
.DistinctUntilChanged()
.Subscribe(text => Console.WriteLine(text));
観察可能なデータベースからのストリーミングデータ
IEnumerable<T>
返すメソッドがあると仮定すると、fe
private IEnumerable<T> GetData()
{
try
{
// return results from database
}
catch(Exception exception)
{
throw;
}
}
Observableを作成し、メソッドを非同期で開始します。 SelectMany
はコレクションを平坦化し、サブスクリプションはBuffer
介して200要素ごとに起動されます。
int bufferSize = 200;
Observable
.Start(() => GetData())
.SelectMany(s => s)
.Buffer(bufferSize)
.ObserveOn(SynchronizationContext.Current)
.Subscribe(items =>
{
Console.WriteLine("Loaded {0} elements", items.Count);
// do something on the UI like incrementing a ProgressBar
},
() => Console.WriteLine("Completed loading"));
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow