计时器滴答处理程序未运行

时间:2013-02-24 22:40:02

标签: vb.net timer

我是VB.net的新手,我正在尝试运行一个半中间脚本来检查某些文件是否打开。当它第一次打开时,它会检查一个特定的程序,然后它将继续检查计时器上的不同程序。当我运行代码时,Sub Timer1永远不会运行,我将它设置为每20秒运行一次..

Imports System.Net
Imports System.Text.RegularExpressions

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If (Process.GetProcessesByName("PROGRAM1").Length >= 1) Then
            MessageBox.Show("This Client is already running!", "IG Error", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            Environment.Exit(0)
        Else
            Process.Start(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "program.exe"))
            '''' OPEN PROGRAM ABOVE ''''
        End If
        For Each frm As Form In Application.OpenForms
            frm.WindowState = FormWindowState.Minimized
        Next frm
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If (Process.GetProcessesByName("PROGRAM2").Length >= 1) Then 'CHECK FOR PROGRAM
            MessageBox.Show("Program is running!", "IG Error", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            Environment.Exit(0)
            Form3.Show()
        Else
            MessageBox.Show("Program is not running!")
        End If
    End Sub
End Class

上面是我已经拥有的代码..我的计时器子要么没有运行,要么没有每20秒检查一次。 有什么想法吗?

1 个答案:

答案 0 :(得分:3)

与计时器的常见错误是:

  1. 您需要使用timer.enabled或timer.start启动它。

  2. 您可能需要在tick处理程序中重置计时器,具体取决于计时器和属性设置的类型。 (有定时器控件,system.timers.timer和system.threading.timer,每个都有一点不同。)

  3. 您可能需要在tick处理程序中暂时禁用它,以确保它不会重新进入处理程序并导致问题。

  4. 如果您需要在计时器运行时等待,最好使用system.threading.thread.sleep而不是循环。