c#中的重复动作

时间:2013-07-12 08:23:32

标签: c# timer

我正在开发一个通过AT命令发送短信的应用程序,那部分是可以的。我有一个联系人列表,我想发送一个文件(及时更改)到我的所有联系人。为了做到这一点,我需要每30分钟重复一次发送部分。 我发现这个代码使用的是计时器,但我不确定它是否对我的情况有用,以及如何使用它。请帮助,任何想法都表示赞赏。

private void btntime_Click(object sender, EventArgs e)
    {
        s_myTimer.Tick += new EventHandler(s_myTimer_Tick);
        int tps = Convert.ToInt32(textBoxsettime.Text);

        // 1 seconde = 1000 millisecondes
        try
        {
            s_myTimer.Interval = tps * 60000;
        }
        catch
        {
            MessageBox.Show("Error");
        }
        s_myTimer.Start();

        MessageBox.Show("Timer activated.");

    }

    // Méthode appelée pour l'évènement
    static void s_myTimer_Tick(object sender, EventArgs e)
    {
        s_myCounter++;

        MessageBox.Show("ns_myCounter is " + s_myCounter + ".");

        if (s_myCounter >= 1)
        {
            // If the timer is on...
            if (s_myTimer.Enabled)
            {
                s_myTimer.Stop();
                MessageBox.Show("Timer stopped.");
            }
            else
            {
                MessageBox.Show("Timer already stopped.");
            }
        }
    }

3 个答案:

答案 0 :(得分:1)

这段代码是否有用完全取决于你想要用它做什么。它显示了.NET中Timer-class的一个非常基本的用法,如果你想实现重复动作,它确实是你可以使用的定时器之一。 I suggest you look at the MSDN-guidance on all timers in .NET并选择最符合您要求的那个。

答案 1 :(得分:0)

这很简单,但如果您在射击之间不需要非常准确的时间间隔,那么应该适合您。 向表单添加计时器(timer1)和计时器刻度事件。

private void btntime_Click(object sender, EventArgs e)
    {
        timer1.Tick += new EventHandler(timer1_Tick);

            timer1.Interval = 30 *1000;
            timer1.Start();



    }

    private void timer1_Tick(object sender, EventArgs e)
    {

         timer1.Stop();
        //fire you method to send the sms here 
        MessageBox.Show("fired");//take this away after test

        timer1.Start();



    }

答案 2 :(得分:0)

你可以开始这样的事情。发送所有短信后,30秒后短信将再次发送。

    public Form1()
    {
        InitializeComponent();
        timer1.Enabled = true;
        timer1.Interval = (30 * 60 * 1000);
        timer1.Tick += SendSMS;
    }

    private void SendSMS(object sender, EventArgs e)
    {
        timer1.Stop();
        // Code to send SMS
        timer1.Start();
    }

希望它有所帮助。