假定:每个客户一天在某个点提醒一次 dim dt as datatable=读取客户及其提醒时间数据'表结构为:客户、提醒时间点、是否已提醒 '是否已提醒默认为未提醒 '取得所有客户提醒点数的最小公倍数,设为timer的interval Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick For Each dr As DataRow In dt.Rows Dim hour As Integer = dr("时间点") Dim nowHour As Integer = Now.Hour If hour > nowHour And dr("是否已提醒") = False Then dr("是否已提醒") = True 'todo 提醒该行客户 Else If hour < nowHour Then dr("是否已提醒") = False End If End If Next End Sub
然后每隔一个时间段(比如没隔一小时),该timer启动一次,调用一个方法,把每个用户的lastTime属性减一,并将减至零的用户进行提醒
没有理解错,你要实现的功能是这样的把
不过我感觉还是调用不同timer或者用其他机制更好
那万一我有1000个客户不就要1000个timer?????
dim dt as datatable=读取客户及其提醒时间数据'表结构为:客户、提醒时间点、是否已提醒
'是否已提醒默认为未提醒
'取得所有客户提醒点数的最小公倍数,设为timer的interval Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
For Each dr As DataRow In dt.Rows
Dim hour As Integer = dr("时间点") Dim nowHour As Integer = Now.Hour If hour > nowHour And dr("是否已提醒") = False Then
dr("是否已提醒") = True
'todo 提醒该行客户
Else
If hour < nowHour Then
dr("是否已提醒") = False
End If
End If
Next
End Sub