各位大虾们:
小弟最近遇上一个难题。有一个需求,需要满足以下条件,求一个最佳解决方案
 winform程序界面动态添加XML文件 ,每个XML文件 里都一个settime(启动时间)、tj(条件)、checktime(检查条件时间)
、 task(需要执行的任务)
条件1.程序启动后,判断是否与XML文件中的settime时间相等,相等的话就执行 tj(为SQL)的语句,如果返的行为空,而已checktime的时间值,每隔多少分钟再执行一次条件,至到tj返回行不为空为止。
条件2.程序启动,有多个定时任务同时运行,不能产生延时或堵塞。
   希望各位大虾有什么好的例子给小弟参照一下。在网上搜多线程多tiemr资料太少,不能满足我的需求,一般写是任务队列,然后是用线程是间隔时间差。不知道有没有什么更好的例子。

解决方案 »

  1.   

    参考:
    二  Timer它适用于需周期性调用的方法,它不在创建计时器的线程中运行,它在由系统自动分配的单独线程中运行。这和Win32中的SetTimer方法类似。它的构造为: 
    public Timer( 
        TimerCallback callback,//所需调用的方法 
        object state,//传递给callback的参数 
        int dueTime,//多久后开始调用callback 
        int period//调用此方法的时间间隔 
    );//
    如果 dueTime 为0,则 callback 立即执行它的首次调用。如果 dueTime 为 Infinite,则 callback 不调用它的方法。计时器被禁用,但使用 Change 方法可以重新启用它。如果 period 为0或 Infinite,并且 dueTime 不为 Infinite,则 callback 调用它的方法一次。计时器的定期行为被禁用,但使用 Change 方法可以重新启用它。如果 period 为零 (0) 或 Infinite,并且 dueTime 不为 Infinite,则 callback 调用它的方法一次。计时器的定期行为被禁用,但使用 Change 方法可以重新启用它。 
    在创建计时器之后若想改变它的period和dueTime,我们可以通过调用Timer的Change方法来改变: [C#] 
    public bool Change( 
        int dueTime, 
        int period 
    );//
    显然所改变的两个参数对应于Timer中的两参数