首页新闻找找看学习计划

关于动态创建Timer的问题

0
悬赏园豆:30 [已解决问题] 解决于 2013-05-23 21:09

如题:

有一个DataTable, 里面有N条数据 ...

如何动态创建N个Timer ... 每个Timer操作一条数据 ...

N是DataTable的Count数 ...

求解 , 谢谢各位 ...

公子迪的主页 公子迪 | 初学一级 | 园豆:104
提问于:2013-05-22 13:47
< >
分享
最佳答案
0

用这么多Timer 恭喜你 你的程序挂定了

收获园豆:15
丫的 | 小虾三级 |园豆:1575 | 2013-05-22 14:19

没办法啊 , 老板让这么做 !

现在TataTable表中有个ReturnUrl字段,存放对方接受的Url,现在要间隔2的N-1次方秒向对方的Url发送数据 ...直到收到对方成功标志才停止 ...

我现在用循环 , 如果没有收到对方的成功标志 , 就没法向下一条数据发送了 , 还一直卡在第一条那 ...

所有才在这里提问 ,麻烦大侠给个思路 , 小弟感激不尽啊 ...

公子迪 | 园豆:104 (初学一级) | 2013-05-22 14:26

@Heiseyoumo: 用多线程啊 每条数据一个线程
 这样不会影响下一条数据了
  问题是有多少数据啊?

丫的 | 园豆:1575 (小虾三级) | 2013-05-22 14:28

@tomcat1988: 数据不固定,因为数据表一直在变化,但不会很多 !

公子迪 | 园豆:104 (初学一级) | 2013-05-22 14:38

@Heiseyoumo: 显示的时候不需要去发数据吧。。。
可以后台写个发数据的东西啊、

丫的 | 园豆:1575 (小虾三级) | 2013-05-22 15:18
其他回答(3)
0

遍历DataTable的行,创建Timer就好了啊

收获园豆:5
Zachary_Fan | 园豆:762 (小虾三级) | 2013-05-22 13:49

1
for (int i = 0; i < dt.Rows.Count; i++) 2 { 3 TimerCls cls = new TimerCls(); 4 var postCommercialDate = new 5 { 6 postUrl = dt.Rows[i]["returnurl"].ToString(), //商户的RETURNURL 7 commercialPid = dt.Rows[i]["pid"].ToString(), //商户的PID 8 orderNum = dt.Rows[i]["merorderNum"].ToString() 9 }; 10 if (Push(postCommercialDate.postUrl, postCommercialDate.commercialPid, dt.Rows[i], postCommercialDate.orderNum)) 11 { 12 //推送成功 13 } 14 else 15 { 16 //推送失败 17 string strUpdFailurestate = "UPDATE IWEB_ORDERS SET FAILURESTATE=1 WHERE STATE=1 AND PID='" + postCommercialDate.commercialPid + "' AND MERORDERNUM='" + postCommercialDate.orderNum + "'"; 18 if (new Web_DBHelp("ZIC_PAY").ExecuteNonQuery(strUpdFailurestate) == 1) 19 { 20 Common.OutPutLogs(Common.GetFileName(), DateTime.Now.ToString(), Common.GetMethod(), Common.GetLineNum(), "订单:" + postCommercialDate.orderNum + "推送失败,FAILURESTATE=1", "PushOrderLog"); 21 } 22 } 23 }

例如现在DataTable有10行数据,用循环只能等一条数据执行完毕,才能往下继续执行...
现在我需要创建10个Timer,每一个Timer操作一条数据,就不需要等了 ... 求解 ...
谢谢...

支持(0) 反对(0) 公子迪 | 园豆:104 (初学一级) | 2013-05-22 14:02
0

楼上正解

foreach(DataRow dr in dtatTable.Rows)

{

  Timer t=new Timer();

}

收获园豆:5
只会造轮子 | 园豆:2448 (老鸟四级) | 2013-05-22 14:01
0

不要用多个timer 用多个线程, 每个线程可以sleep一定的间隔时间之后再发送数据。

收获园豆:5
gunsmoke | 园豆:3592 (老鸟四级) | 2013-05-23 07:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册