有一方法
 private void DoUpdateDB
{
if(time==12)
{
for (int z = 0; z<10000; z++)
{
DOSOMETHINGS()............
}
 Thread.Sleep(500);
}}
思路是 每到12点 间隔500MS 循环做DOSOMETHINGS()
是否可行?

解决方案 »

  1.   

    if(time==12)
    {
    while(true)
    {
    for (int z = 0; z <10000; z++)
    {
    DOSOMETHINGS()............
    }
     Thread.Sleep(500);
    }

    这样就可以,你中间应该有判断退出的条件,不然就会一直循环
      

  2.   

    while(true)
    没有表达式
    那什么时候回是 fales呢?
      

  3.   

    不好意思,上面的代码错了if(time==12) 

        for (int z = 0; z <10000; z++) 
        { 
           DOSOMETHINGS()............
           Thread.Sleep(500);
        } 
    }如果用while(true)的话,可以这样:
    if(time==12) 

        int i=0;
        while(true)
        { 
           DOSOMETHINGS()............
           Thread.Sleep(500);
           if(i++ == 10000)
               break;
        } 
    }
      

  4.   

    多谢各位 
    实际问题是这样的在一台SERVER上部署一个WINDOWS SERVICE
    每晚12点执行下面的工作从一数据表根据时间字段 读top 1000条ID (datediff(day,[updatetime],getdate())>=20)
    根据次ID 吊用一WS 并把返回的结果 更新该表 (并更新时间) 
    第2天每晚12点 由于时间字段已更新 继续循环执行 更新第一天未读出的数据
    有些烦琐的!
    考虑效率 资源等问题 选择了使用线程以上思路这样处理 妥否?
    欢迎继续讨论 分不够 可添加!!!
      

  5.   

    WebService我多么期待的架构阿,但就是目前只能做成CS方式的,关键Server是个RedHat阿
      

  6.   

    可以考虑用System.windows.form.Timer对象啊,
    Timer t1=new Timer();
    t1.Interval=1000;
    t1.Ticks+=new EventHandler(delegate{
    DateTime dt=DateTime.Now;
    if(dt.Hour==0)
    {
        for (int z = 0; z <10000; z++) 
        { 
           DOSOMETHINGS()............
           Thread.Sleep(500);
        } 
    }
    });
    t1.Start();
    以上代码只为说明思路,没有测试。