サーチ…


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