功能介绍:刚做了一个类似于定时提醒的小工具,可以无限添加任务,当前时间为任务时间的时候,弹出窗口提醒,旁边一个
ListBox,每行显示一个任务,并且即时更新(按秒倒计时)问题
1 由于使用timer_Tick每秒计算一次,当任务比较多的时候,导致速度变慢。有没有办法能缓解这种情况(我感觉这类问题应该不是每秒都计算吧,莫非手机里面的闹铃什么也是这么设计的?)2 设计时,采用listbox浏览当前任务,开发完后觉得这个控件效果太差,而且,还想添加任务的删除功能,在listbox上不能操作,有没有一款控件,能够分列显示任务,最后一列还能添加删除按钮这样自定义的空间(web下gridview自定义模板那样的。。)

解决方案 »

  1.   

    问题1:
    当任务很多时,如果全部轮询判断的话,确实会影响速度,而且可能1秒还判断不完,这种情况下,你就要想办法了:我的建议是:对所有任务的下一次执行时间排序,轮询的时候,判断到某一个任务这一秒不会执行,就不需要判断后面的了。记得:新任务添加的时候或是周期性任务执行完了等待下一次执行的时候,都要将他们重新计算按顺序插入到队列中(周期性任务是调整顺序)问题2 :
    可以用ListVie或DataGridView解决,稍微有点复杂,网上现成的文章很多
      

  2.   

    1.将任务按时间排序,新增加的任务也保持顺序。计算最近的任务触发的时间,将时间间隔改为一个比较接近的数字,比如下一个任务在半个小时之后,那么完全可以将计时器的Interval改为半个小时,半个小时之后,仍然可以使用比较大的数字,比如说一分钟。对时间要求不是很严格的场合,不要过于频繁地执行轮询。
    2.ListView或DataGridView都可以,DataGridView可以有按钮列,ListView要把按钮放在外面。
      

  3.   

    对   4楼说的第  主要是你不要出现多个计时器  也不要在每个计时点上判断过多的任务。  任务排序后 每次只检测相近的部分任务就可以了
    至于界面美观的问题。  GRID 或者你自己写一个USERCONTROL也可以啊