Hi Joe,
See the following discussions about controlling concurrency:
http://social.msdn.microsoft.com/Forums/en/rx/thread/27bc8866-67b9-412d-a74f-cee202b38e1e
http://social.msdn.microsoft.com/Forums/en-US/rx/thread/e4ae703e-d97d-4a16-8b58-4cfa0610d187
Basically, the solution that you need is probably orthogonal to the operators that you've mentioned; e.g., creating a custom
IScheduler perhaps.
There are many different ways that each of those operators could work, so Rx only provides a few of them; presumably, the most common.
Buffer*: Keeps track of values by count or time. When the specified threshold elapses, the current buffer is observed.
Throttle: Keeps a buffer of 1 value, replacing previous values, until the specified period of silence elapses (i.e., no more values), after which the last value buffered is observed.
Sample: Keeps a buffer of 1 value, replacing previous values, until the specified sampling period elapses, after which the last value buffered is observed.
Take*: Takes the specified number of values from the beginning or end of the sequence, or until another observable produces a value, or until some predicate returns
false, and then calls OnCompleted.
- Dave
http://davesexton.com/blog