0

我已成功使用此问题中所述的解决方案。

我现在想以几种不同的形式重用计时器方法,并一直在尝试创建一个类,以便将各种形式的方法数量保持在最低限度。但是,我对编程和使用类和事件相当陌生,并且不太认为我正确地处理了这个问题。

下面是我到目前为止的课程。我的班级中的和事件可以在主程序中触发和事件吗?我什至应该使用课程吗?

using System;
using System.Timers;

namespace TMP_ERP
{
    class Timer
    {
        int MilliSeconds;
        System.Windows.Forms.Timer queryTimer;

        public Timer()
        {
        }


        //Revokes the timer if not already revoked
        public void RevokeQueryTimer()
        {
            if (queryTimer != null)
            {
                queryTimer.Stop();
                queryTimer.Tick -= queryTimer_Tick;
                queryTimer = null;
            }
        }

        public void RestartQueryTimer()
        {
            //start or reset a pending query
            if (queryTimer == null)
            {
                queryTimer = new System.Windows.Forms.Timer { Enabled = true, Interval     = 1500 };
                queryTimer.Tick += queryTimer_Tick;
            }

            else
            {
                queryTimer.Stop();
                queryTimer.Start();
            }
        }

        void queryTimer_Tick(object sender, EventArgs e)
        {
            //Tells Main Program to do something?
        }
    }
}

每次有人键入一个字符时,我都会调用RestartQueryTimer()。如果QueryTimer滴答声比我查询数据库,然后调用RevokeQueryTimer()删除计时器。

4

1 回答 1

0

在这种情况下,您可以拥有的最佳示例是您已经在 Timer 中使用的计时器接口 - System.Windows.Forms.Timer。提供一个事件来通知您的类的客户端,就像内部 Timer 所做的那样。

于 2013-08-13T21:51:40.527 回答