每X秒执行指定的function

我有用C#编写的Windows窗体应用程序。 打印机在线或不在线时,以下function将被检查:

public void isonline() { PrinterSettings settings = new PrinterSettings(); if (CheckPrinter(settings.PrinterName) == "offline") { pictureBox1.Image = pictureBox1.ErrorImage; } } 

并在打印机处于脱机状态时更新图像。 现在,我怎么能每2秒执行一次isonline()函数,所以当我拔下打印机时,窗体上显示的图像( pictureBox1 )会变成另一个图像而不重新启动应用程序或进行手动检查? (例如通过按下运行isonline()函数的“刷新”button)

使用System.Windows.Forms.Timer 。

 private Timer timer1; public void InitTimer() { timer1 = new Timer(); timer1.Tick += new EventHandler(timer1_Tick); timer1.Interval = 2000; // in miliseconds timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { isonline(); } 

您可以在Form1_Load()调用InitTimer() Form1_Load()

最初学者友好的解决scheme是:

从工具箱拖一个定时器,给它一个名称,设置你想要的间隔,并将“启用”设置为真。 然后双击计时器和Visual Studio(或任何你正在使用)会写你下面的代码:

 private void wait_Tick(object sender, EventArgs e) { refreshText(); //add the method you want to call here. } 

你去了 无需担心粘贴到错误的代码块或类似的东西。

你可以通过在你的表单中添加一个Timer(devise者),并设置它的Tick函数来运行你的isonline函数。