创建计时器字典

时间:2016-09-21 09:27:36

标签: vb.net dictionary timer

我为我们的应用程序编写了一个调度程序,它将任务从我们的中央数据库中删除。它运行来自外部'模块的各种东西。我们的应用程序自定义SQL脚本。

我已声明如下:

Dim ScheduleList As New DataTable
Dim WithEvents Actions As New Dictionary(Of String, String)()
Dim WithEvents Timers As New Dictionary(Of String, Timers.Timer)()

我的代码设置了所有内容。

Private Sub RunScheduleTasks()

    Dim result() As DataRow = ScheduleList.Select("TriggerType = 0 AND IsEnabled = 1") 'External Calls
    For Each row As DataRow In result
        Dim i As Integer = row(0)
        Actions.Add("action" + i.ToString, row(9).ToString)
        WriteLog("Action Added: " + i.ToString, "INFORMATION")

        Dim T As New System.Timers.Timer
        With T
            .Interval = Convert.ToInt32(row(7).ToString) * 1000
            AddHandler T.Elapsed, Sub(sender, e)
                                      Process.Start(row(9).ToString)
                                      WriteLog(row(9).ToString, "INFORMATION")
                                  End Sub

        End With
        Timers.Add("timer" + i.ToString, T)

        WriteLog("Timer Added: " + i.ToString, "INFORMATION")

        Timers("timer" + i.ToString).Start()
    Next
    WriteLog("Actions: " + Actions.Count.ToString, "INFORMATION")
    WriteLog("Timers: " + Timers.Count.ToString, "INFORMATION")

End Sub

我的问题是它似乎只运行最后创建的对象,我的输出日志记录显示其中的几个项目但是在检查它们时它们都显示Void _Lambda $ __ 1()

此致 麦克

0 个答案:

没有答案