Beispiel #1
0
        private static TimeSpan GetDelay(BackgroundParserSubscriptionDelay delay)
        {
            const int nearImmediateDelay = 50;
            const int shortDelay         = 250;
            const int mediumDelay        = 500;
            const int idleDelay          = 1500;

            switch (delay)
            {
            case BackgroundParserSubscriptionDelay.NearImmediate:
                return(TimeSpan.FromMilliseconds(nearImmediateDelay));

            case BackgroundParserSubscriptionDelay.Short:
                return(TimeSpan.FromMilliseconds(shortDelay));

            case BackgroundParserSubscriptionDelay.Medium:
                return(TimeSpan.FromMilliseconds(mediumDelay));

            case BackgroundParserSubscriptionDelay.OnIdle:
            default:
                return(TimeSpan.FromMilliseconds(idleDelay));
            }
        }
Beispiel #2
0
        private static TimeSpan GetDelay(BackgroundParserSubscriptionDelay delay)
        {
            const int nearImmediateDelay = 50;
            const int shortDelay = 250;
            const int mediumDelay = 500;
            const int idleDelay = 1500;

            switch (delay)
            {
                case BackgroundParserSubscriptionDelay.NearImmediate:
                    return TimeSpan.FromMilliseconds(nearImmediateDelay);
                case BackgroundParserSubscriptionDelay.Short:
                    return TimeSpan.FromMilliseconds(shortDelay);
                case BackgroundParserSubscriptionDelay.Medium:
                    return TimeSpan.FromMilliseconds(mediumDelay);
                case BackgroundParserSubscriptionDelay.OnIdle:
                default:
                    return TimeSpan.FromMilliseconds(idleDelay);
            }
        }
Beispiel #3
0
 public IDisposable SubscribeToThrottledSemanticModelAvailable(BackgroundParserSubscriptionDelay delay, Action <BackgroundParserEventArgs> callback)
 {
     return(Observable.FromEventPattern <BackgroundParserEventArgs>(x => SemanticModelAvailable += x, x => SemanticModelAvailable -= x)
            .Throttle(GetDelay(delay))
            .Subscribe(x => callback(x.EventArgs)));
 }
Beispiel #4
0
 public IDisposable SubscribeToThrottledSemanticModelAvailable(BackgroundParserSubscriptionDelay delay, Action<BackgroundParserEventArgs> callback)
 {
     return Observable.FromEventPattern<BackgroundParserEventArgs>(x => SemanticModelAvailable += x, x => SemanticModelAvailable -= x)
         .Throttle(GetDelay(delay))
         .Subscribe(x => callback(x.EventArgs));
 }