有一方法
private void DoUpdateDB
{
if(time==12)
{
for (int z = 0; z<10000; z++)
{
DOSOMETHINGS()............
}
Thread.Sleep(500);
}}
思路是 每到12点 间隔500MS 循环做DOSOMETHINGS()
是否可行?
private void DoUpdateDB
{
if(time==12)
{
for (int z = 0; z<10000; z++)
{
DOSOMETHINGS()............
}
Thread.Sleep(500);
}}
思路是 每到12点 间隔500MS 循环做DOSOMETHINGS()
是否可行?
{
while(true)
{
for (int z = 0; z <10000; z++)
{
DOSOMETHINGS()............
}
Thread.Sleep(500);
}
}
这样就可以,你中间应该有判断退出的条件,不然就会一直循环
没有表达式
那什么时候回是 fales呢?
{
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;
}
}
实际问题是这样的在一台SERVER上部署一个WINDOWS SERVICE
每晚12点执行下面的工作从一数据表根据时间字段 读top 1000条ID (datediff(day,[updatetime],getdate())>=20)
根据次ID 吊用一WS 并把返回的结果 更新该表 (并更新时间)
第2天每晚12点 由于时间字段已更新 继续循环执行 更新第一天未读出的数据
有些烦琐的!
考虑效率 资源等问题 选择了使用线程以上思路这样处理 妥否?
欢迎继续讨论 分不够 可添加!!!
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();
以上代码只为说明思路,没有测试。