コード例 #1
0
ファイル: TimeHelper.cs プロジェクト: memoz/AIGS
        /// <summary>
        /// 回调响应函数
        /// </summary>
        private void Callback_ElapsedEventHandler(object sender, ElapsedEventArgs e)
        {
            //查找
            Timer aTimer = (Timer)sender;
            KeyValuePair <int, TIMER_NODE> aTor = m_TimerHandle.First(s => s.Value.aTimer.Equals(aTimer));

            //执行回调
            TIMER_NODE aTreeNode = aTor.Value;
            object     aObject   = aTreeNode.data;

            aTreeNode.pFunc(sender, e, aTor.Key, ref aObject);

            //赋值回去
            aTreeNode.data          = aObject;
            m_TimerHandle[aTor.Key] = aTreeNode;
        }
コード例 #2
0
ファイル: TimeHelper.cs プロジェクト: memoz/AIGS
        /// <summary>
        /// 定时器初始化
        /// </summary>
        /// <param name="iMilliSecond">毫秒限制</param>
        /// <param name="data">可添加的变量</param>
        /// <param name="pFunc">处理函数</param>
        /// <param name="iTimerKey">定时器的关键字</param>
        public void TimerInit(int iMilliSecond, object data, FuncEventHandle pFunc, int iTimerKey = -1)
        {
            //新建定时器
            Timer aTime = new Timer(iMilliSecond);

            aTime.Elapsed += Callback_ElapsedEventHandler;
            aTime.Stop();

            //新建节点
            TIMER_NODE pNode = new TIMER_NODE();

            pNode.aTimer = aTime;
            pNode.data   = data;
            pNode.pFunc  = pFunc;

            //添加到哈希表句柄中
            m_TimerHandle.Remove(iTimerKey);
            m_TimerHandle.Add(iTimerKey, pNode);
        }