我有一些选择的案例,可以根据设置的时间表运行。因此,我编写了下面提供的代码。
Private WithEvents tmr_Imp_Pms_File As New Timers.Timer(950) 'for PMS File
Private Sub tmr_Imp_Pms_File_Elasped(ByVal sender As System.Object, ByVal e As Timers.ElapsedEventArgs) Handles tmr_Imp_Pms_File.Elapsed
Thread.Sleep(50)
Select Case .Enable_Schedule
Case 1 ' Schedule - Daily Option
If .Enable_Daily_Option_1 = 1 Then
If _
TimeSerial(Now.Hour, Now.Minute, Now.Second) =
TimeSerial(.Daily_Option_1_Time.Hour, .Daily_Option_1_Time.Minute,
.Daily_Option_1_Time.Second) Then
logger.log.Info("Checking Running Daily Schedule Option 1, " & Now.ToString)
End If
End If
If .Enable_Daily_Option_2 = 1 Then
If _
TimeSerial(Now.Hour, Now.Minute, Now.Second) =
TimeSerial(.Daily_Option_2_Time.Hour, .Daily_Option_2_Time.Minute,
.Daily_Option_2_Time.Second) Then
logger.log.Info("Checking Running Daily Schedule Option 2, " & Now.ToString)
End If
End If
If .Enable_Daily_Option_3 = 1 Then
If _
TimeSerial(Now.Hour, Now.Minute, Now.Second) =
TimeSerial(.Daily_Option_3_Time.Hour, .Daily_Option_3_Time.Minute,
.Daily_Option_3_Time.Second) Then
logger.log.Info("Checking Running Daily Schedule Option 3, " & Now.ToString)
End If
End If
End Select
End Sub
在这里,我有3个时间表选项,我为我的程序启用了所有3个时间表。但是存在一个随机且很少发生的问题,程序将跳过第二个选项的运行。我相信这与下面显示的这一部分有关。
" TimeSerial(Now.Hour, Now.Minute, Now.Second) =
TimeSerial(.Daily_Option_1_Time.Hour, .Daily_Option_1_Time.Minute,
.Daily_Option_1_Time.Second) Then"
如何增强这段代码来解决该问题? 还有其他编写代码的方法吗? “我知道有...”,但是有人可以给我展示一些更好的方法来处理此问题的示例。
感谢您的帮助,谢谢。
答案 0 :(得分:0)
我找到了答案,下面是解决此问题的方法。
Private WithEvents tmr_Imp_Pms_File As New Timers.Timer(950) 'for PMS File
Private Sub tmr_Imp_Pms_File_Elasped(ByVal sender As System.Object, ByVal e As Timers.ElapsedEventArgs) Handles tmr_Imp_Pms_File.Elapsed
Select Case .Enable_Schedule
Case 1 ' Schedule - Daily Option
If .Enable_Daily_Option_1 = 1 Then
If _
TimeSerial(Now.Hour, Now.Minute, Now.Second) =
TimeSerial(.Daily_Option_1_Time.Hour, .Daily_Option_1_Time.Minute,
.Daily_Option_1_Time.Second) Then
logger.log.Info("Daily Schedule Option 2 Hit, " & Now.ToString("HH:mm:ss.fff"))
tmr_Imp_Pms_File.Stop() : Thread.Sleep(50)
End If
End If
If .Enable_Daily_Option_2 = 1 Then
If _
TimeSerial(Now.Hour, Now.Minute, Now.Second) =
TimeSerial(.Daily_Option_2_Time.Hour, .Daily_Option_2_Time.Minute,
.Daily_Option_2_Time.Second) Then
logger.log.Info("Daily Schedule Option 2 Hit, " & Now.ToString("HH:mm:ss.fff"))
tmr_Imp_Pms_File.Stop() : Thread.Sleep(50)
End If
End If
If .Enable_Daily_Option_3 = 1 Then
If _
TimeSerial(Now.Hour, Now.Minute, Now.Second) =
TimeSerial(.Daily_Option_3_Time.Hour, .Daily_Option_3_Time.Minute,
.Daily_Option_3_Time.Second) Then
logger.log.Info("Daily Schedule Option 2 Hit, " & Now.ToString("HH:mm:ss.fff"))
tmr_Imp_Pms_File.Stop() : Thread.Sleep(50)
End If
End If
End Select
End Sub
```