我正在开发一个通过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.");
}
}
}
答案 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();
}
希望它有所帮助。