public async Task OnExpiredHandler() { Value = null; await OnExpired.InvokeAsync(ElementId); await ValueChanged.InvokeAsync(Value); }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { List <ushort> list = new List <ushort>(); DateTime now = DateTime.UtcNow; var query = container.Where(c => c.Value < now); if (query != null) { foreach (var item in query) { if (container.ContainsKey(item.Key)) { list.Add(item.Key); } } ushort[] ids = list.ToArray(); foreach (var item in list) { container.Remove(item); } if (ids != null && ids.Length > 0) { OnExpired?.Invoke(this, new LifetimeEventArgs(ids)); } } if (container.Count == 0) { timer.Enabled = false; } }
/// <summary> /// Handles exceptions /// </summary> /// <param name="message"></param> internal static void ExceptionHandle(NetIncomingMessage message, String reason) { Handshake.Contents contents; switch ((message.SenderConnection.Tag as Handshake).HandshakeState) { case Handshake.State.Failed: contents = Handshake.Contents.Error; OnError.Invoke(reason); break; case Handshake.State.Expired: contents = Handshake.Contents.Expired; OnExpired.Invoke(reason); break; case Handshake.State.Denied: contents = Handshake.Contents.Denied; OnDenied.Invoke(reason); break; default: contents = Handshake.Contents.Error; OnError.Invoke(reason); break; } var result = Create(message.SenderConnection, contents); result.Write(reason); message.SenderConnection.SendMessage(result, NetDeliveryMethod.ReliableUnordered, 0); }
private void OnRemovedFromCache(CacheEntryRemovedArguments args) { if (args.RemovedReason == CacheEntryRemovedReason.Expired) { string key = args.CacheItem.Key.Replace($"{name}:key=", ""); OnExpired?.Invoke(this, new CacheItemExpiredEventArgs(name, key, args.CacheItem.Value)); } }
internal HttpSession(string id) : base() { this.ID = id; this.Expired = DateTime.Now.AddMinutes(20); timer = new Timer(new TimerCallback((o) => { OnExpired?.Invoke((HttpSession)o); }), this, (long)(new TimeSpan(0, 20, 0).TotalMilliseconds), -1); }
public KeyCacheItem(object key, DateTime expired) { this.Key = key; this.Expired = expired; timer = new Timer(new TimerCallback((k) => { OnExpired?.Invoke((KeyCacheItem)k); }), this, (int)(expired - DateTime.Now).TotalMilliseconds, -1); }
public KeyCacheItem(object key, DateTime expired) { this.Key = key; this.Expired = expired; TaskHelper.LongRunning(() => { while (true) { if ((expired - DateTimeHelper.Now).TotalMilliseconds <= 0) { OnExpired?.Invoke(this); break; } Thread.Sleep(1000); } }); }
private IEnumerator CountdownCoroutine() { while (RemainingTime > AlertLimitTime) { RemainingTime -= Time.deltaTime; OnUpdatedCountdown?.Invoke(RemainingTime); yield return(null); } OnAlertTime?.Invoke(this); while (RemainingTime > 0) { RemainingTime -= Time.deltaTime; OnUpdatedCountdown?.Invoke(RemainingTime); yield return(null); } OnExpired?.Invoke(this); ResetCountdown(); }
public void Guide(IReadOnlyCollection <Page> pages, ChromeDriver driver, OnLoadingPage onLoadingPage, OnShowingPage onShowingPage, OnInitializingPage onInitializingPage, OnExpired onExpired, OnError onError) { _tabSwitcher.Initialize(pages, _tabs); while (true) { Thread.Sleep(250); // just in case the while loop ever gets out of control... foreach (var item in pages.Select((pageValue, pageIndex) => new { pageIndex, pageValue })) { var page = item.pageValue; var index = item.pageIndex; if (page.IsExpired) { onExpired(page); } else { try { if (_internetConnectionChecker.InternetConnectionIsAvailable()) { if (_tabs.TryGetValue(page.Url, out var tab)) { driver.SwitchTo().Window(tab.WindowHandle); if (tab.ShouldBeReloaded) { onLoadingPage(index + 1, page); _tabLoader.Load(tab, page); } else { onShowingPage(index + 1, page); } } else { var tabInitializer = index == 0 ? (Func <Page, Tab>)_pageInitializer.InitializeInCurrentTab : _pageInitializer.InitializeInNewTab; onInitializingPage(index + 1, page); _tabs[page.Url] = tabInitializer(page); continue; } } else { _pingPlotterWindowStateChanger.Maximize(); } } catch (Exception exception) { onError(page, exception); } int time = 0; if (page.Url.Contains("radar")) { time = 40; } else { time = 10; } Console.WriteLine($"{DateTime.Now}: Delay time is {time}"); _tabSwitcher.WaitAtLeast(TimeSpan.FromSeconds(time)); //tab switch timer controller } } } // ReSharper disable once FunctionNeverReturns }