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

5

我完全是VB.net的新手,我试图运行一个半中级脚本,它检查某些文件是否被打开。当它首次打开时,它会检查一个特定的程序,然后在计时器上继续检查另一个程序。但是,当我运行代码时,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秒检查一次。 有什么想法吗?


首先调用 Timer.Start() 方法,或者将 Timer.Enabled 属性设置为 True - alldayremix
需要启动一个计时器。您要启动/启用计时器吗?如果是,放在哪里? - Steve
我还没有调用它:P 我现在会调用它并让你知道它是否有效(: - Jordan ChillMcgee Ludgate
你还需要设置间隔 1000 毫秒等于 1 秒 - spajce
太好了!它起作用了。抱歉我是个新手:P 当我看教程的时候,可能没有看到计时器启动! - Jordan ChillMcgee Ludgate
1个回答

3
常见的定时器错误包括:
  1. 您需要使用timer.enabled或timer.start来启动它。

  2. 根据定时器的类型和属性设置,您可能需要在tick处理程序中重置定时器(有定时器控件、system.timers.timer和system.threading.timer,每个都略有不同)。

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

  4. 如果您需要等待定时器运行,使用system.threading.thread.sleep比使用循环要好得多。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接