C#使用不同间隔的两个或多个计时器

时间:2010-03-15 09:00:24

标签: c# timer intervals

我必须在d.b条目中给出间隔,

假设1个定时器tm_5将在每5分钟后检查一次输入。计时器tm_10将检查

每10分钟后的条目,

问题是它只检查tm_5的条目而不是tm_10。

我正在使用C#.net 2005& MS sql server 2005。

2 个答案:

答案 0 :(得分:0)

试试这个(添加label1和label2以形成名为TimerTester的地方)。

public partial class TimerTester : Form
{
    public TimerTester()
    {
        InitializeComponent();
    }
    Timer _t1;
    Timer _t2;
    int _it1 = 0, _it2 = 0;
    private void Form1_Load(object sender, EventArgs e)
    {
        _t1 = new Timer() { Interval = 1000 };            
        _t1.Tick += new EventHandler(_t1_Tick);
        _t2 = new Timer() { Interval = 2000 };
        _t2.Tick += new EventHandler(_t2_Tick);
        _t1.Start(); _t2.Start();
    }
    void _t1_Tick(object sender, EventArgs e)
    {
        label1.Text = "t1: " + (_it1++).ToString();
    }
    void _t2_Tick(object sender, EventArgs e)
    {
        label2.Text = "t2: " + (_it2++).ToString();
    }        
}

另请注意,您应该使用Forms.Timer而不是Threads.Timer(或使用InvokeRequired并阅读并了解其含义)。

答案 1 :(得分:0)

您应该更改UI线程中标签的文本,以便此代码可以正常工作。请参阅Control.Invoke和Control.InvokeRequired以获取帮助。