예제 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="info"></param>
 public void RemoveMethodInfo(QueueMethodInfo info)
 {
     lock (Locker)
     {
         QueueMethodInfos.Remove(info);
         CheckAndRun();
     }
 }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        private void RemoveWaitBeforeInvoke()
        {
            var waitingMethodInfo = QueueMethodInfos.FirstOrDefault(f =>
                                                                    f.State == QueueState.WaitBeforeInvoke);

            if (waitingMethodInfo != null)
            {
                QueueMethodInfos.Remove(waitingMethodInfo);
            }
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        private void RemoveWaitTimeoutItems()
        {
            var waitingItems = QueueMethodInfos.ToList(w => w.State == QueueState.WaitBeforeInvoke);

            foreach (var item in waitingItems)
            {
                var isTimeOut = item.WaitInvokeBeginDateTime.AddMilliseconds(WaitTimeOutMilliSecound) < DateTime.Now;
                if (isTimeOut)
                {
                    QueueMethodInfos.Remove(item);
                }
            }
        }