Beispiel #1
0
        void TimerElapsed(object state)
        {
            Timer.Change(Timeout.Infinite, Timeout.Infinite);

            bool resubscribe = false;

            try
            {
                var result = Client.IsSubscribed(new IsSubscribedRequest {
                    Id = Subscription.Id
                }, deadline: DateTime.UtcNow.AddSeconds(15));
                resubscribe = !result.Subscribed;
            }
            catch
            {
                resubscribe = true;
            }

            if (resubscribe)
            {
                Console.WriteLine("Try to resubscribe...");

                SubscriptionCancel.Cancel();
                SubscriptionCancel = new CancellationTokenSource();
                SubscribeToEvent(SubscriptionCancel.Token).ConfigureAwait(false).GetAwaiter();
            }

            Timer.Change(REQUEST_INTERVAL, Timeout.Infinite);
        }