I had the same problem, and I could not find a ready-made solution, so I made one, and here it is. The idea is to use BlockingCollection<T> to add items that need processing, and use Reactive Extensions to subscribe to a speed-limited processor.
Throttle class is a renamed version of this speed limiter.
public static class BlockingCollectionExtensions {
Unit test:
class BlockCollectionExtensionsTest { [Fact] public void AsRateLimitedObservable() { const int maxItems = 1;
georgiosd
source share