/// <summary> /// 定时器触发 /// </summary> protected internal override void OnTimer() { if (!client.Check()) { KeepMode = AutoCSer.Threading.SecondTimerKeepMode.Canceled; } }
internal void OnTimer() { ++currentSeconds; ClientSocketBase head = Head; if (head != null && head.CheckTimeoutSeconds <= currentSeconds && Interlocked.CompareExchange(ref isTimer, 1, 0) == 0) { do { if ((head = pop(currentSeconds)) == null) { System.Threading.Interlocked.Exchange(ref isTimer, 0); return; } head.Check(); }while (true); } }