我有许多的客户信息,我想给每个客户添加个提醒功能(定时提醒),想只有一个timer实现,但是每个客户有不是一个时间提醒怎么弄??有会的吗 ?

解决方案 »

  1.   

    比如我第一个客户设置的为15点提醒,第二个为16点提醒 第三个19点提醒等等 客户的数量是未知的,我想在个timer里处理怎么实现比较
      

  2.   

    就是给每个客户一个提醒功能  提醒的内容就在timer里处理,我有很多的客户需要有提醒功能但是他们的提醒时间不一样 只用一个timer可以实现吗?
      

  3.   

    自己逻辑处理各个客户时间差,然后动态设置interval .
      

  4.   

    你可以使用多个Timer控件,每个Timer处理不同的任务。当然如果你愿意你可以在一个Timer事件里处理好所有的任务,就看你处理方法如何了。
      

  5.   

    你可以给每个客户分配一个lastTime属性(整形变量就行),用来记录该用户提醒时间距当前时间的长度,比如5代表5小时
    然后每隔一个时间段(比如没隔一小时),该timer启动一次,调用一个方法,把每个用户的lastTime属性减一,并将减至零的用户进行提醒
    没有理解错,你要实现的功能是这样的把
    不过我感觉还是调用不同timer或者用其他机制更好
      

  6.   

    timer一定是多个的,这样才能保证正确性。要不容易混乱
      

  7.   


    那万一我有1000个客户不就要1000个timer?????
      

  8.   

    假定:每个客户一天在某个点提醒一次
    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