如何在C#中设置计时器?
我正在用C#语言制作一个程序,每15分钟就会ping“google”。如果ping成功,它将在15分钟后再次检查(ping),以此类推……如果ping不成功,它将执行我的ISP的dailer,并在每15分钟后再次检查一次 我已经写了所有的代码,但我似乎不能设置计时器,每15分钟重复一次代码。如果有人能帮助我,我将非常感激 这是代码如何在C#中设置计时器?,c#,timer,C#,Timer,我正在用C#语言制作一个程序,每15分钟就会ping“google”。如果ping成功,它将在15分钟后再次检查(ping),以此类推……如果ping不成功,它将执行我的ISP的dailer,并在每15分钟后再次检查一次 我已经写了所有的代码,但我似乎不能设置计时器,每15分钟重复一次代码。如果有人能帮助我,我将非常感激 这是代码 using System; using System.Windows.Forms; using System.Net.NetworkInformation; usin
using System;
using System.Windows.Forms;
using System.Net.NetworkInformation;
using System.Net;
using System.Diagnostics;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
timer.Interval = (4000); //For checking, I have set the interval to 4 sec. It actually needs to be 15 minutes.
timer.Enabled = true;
timer.Start();
Ping ping = new Ping();
PingReply pingStatus = ping.Send(IPAddress.Parse("208.69.34.231"));
if (pingStatus.Status != IPStatus.Success)
{
timer.Tick += new EventHandler(timer1_Tick);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
Process.Start("C:\\WINDOWS\\system32\\rasphone.exe","-d DELTA1");
}
}
}
这段代码的作用是,如果我的拨号程序在我执行这个程序时已经连接了,它什么也不做。甚至在4秒钟后都不会重新检查。
但如果我运行此程序时拨号器未连接,它会立即连接我的拨号器,并在每4秒后尝试重新连接拨号器,甚至不检查(ping google)
我似乎无法正确设置计时器,因为我以前从未使用过计时器功能。如果有人能帮我,我将不胜感激
问候,,
Shajee A.听起来你只需要在计时器的
处理程序中移动ping代码。像这样:
private void Form1_Load(object sender, EventArgs e)
{
timer.Interval = 4000;
timer.Enabled = true;
timer.Tick += new EventHandler(timer1_Tick);
timer.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Ping ping = new Ping();
PingReply pingStatus = ping.Send(IPAddress.Parse("208.69.34.231"));
if (pingStatus.Status != IPStatus.Success)
{
Process.Start("C:\\WINDOWS\\system32\\rasphone.exe","-d DELTA1");
}
}
如果ping失败,则将timer1\u Tick方法连接到委托,如果成功,则不连接它。
代理每4秒调用一次。
因此,如果第一次测试失败,dailer将每4秒调用一次,如果失败,则不会发生任何事情
您需要将time1_Tick方法连接到代理(无测试),并将测试(ping)放在timer1_Tick方法中,以便每4秒进行一次测试。您是否检查了at MSDN?Tick?什么是滴答声?您使用的是自定义计时器类吗?@Serge我假设OP使用的是,它看起来与System.Timers
或System.Threading
.OMG中的有点不同!我真不敢相信我这么笨。非常感谢你的帮助。它工作得很好。我们都会时不时地犯愚蠢的错误。快乐编码:)