Exemple #1
0
        public DmcVideoSource(CookieContainer cookieContainer, Uri heartBeatsUri, APIs.heartbeats.Response.Rootobject rootobject)
        {
            Status      = HeartBeatsStatus.Active;
            ContentsUri = new Uri(rootobject.data.session.content_uri);

            Task.Run(() =>
            {
                do
                {
                    try
                    {
                        Task.Delay(rootobject.data.session.keep_method.heartbeat.lifetime / 3).Wait(tokenSource.Token);
                        var beatTask = BeatAsync(cookieContainer, heartBeatsUri, rootobject);
                        beatTask.Wait(tokenSource.Token);
                        heartbeatsInfo = beatTask.Result;
                    }
                    catch (OperationCanceledException)
                    {
                        return;
                    }
                    catch (Exception)
                    {
                        HeartbeatsError?.Invoke();
                    }
                } while (heartbeatsInfo != null && !tokenSource.IsCancellationRequested);
            });
        }
Exemple #2
0
 public void Dispose()
 {
     Status = HeartBeatsStatus.Dispose;
     tokenSource.Cancel();
     ContentsUri = null;
 }
 public void Dispose()
 {
     Status = HeartBeatsStatus.Dispose;
 }