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); }); }
public void Dispose() { Status = HeartBeatsStatus.Dispose; tokenSource.Cancel(); ContentsUri = null; }
public void Dispose() { Status = HeartBeatsStatus.Dispose; }