Streaming Data from Database with Observable

suggest change

Assume having a method returning IEnumerable<T>, f.e.

private IEnumerable<T> GetData()
{
    try 
    {
        // return results from database 
    }
    catch(Exception exception)
    {
        throw;
    }
}

Creates an Observable and starts a method asynchronously. SelectMany flattens the collection and the subscription is fired every 200 elements through Buffer.

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"));

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:


Reactive Extensions Rx:
* Streaming Data from Database with Observable

Table Of Contents
17 Regex
19 Arrays
21 Enum
22 Tuples
24 GUID
27 Looping
36 Casting
46 Methods
88 Events
92 Structs
104 Indexer
106 Stream
107 Timers
109 Threading
127 Caching
135 Pointers
138 Reactive Extensions Rx
147 C# Script