System.Threading.Timer定时器遍历问题

chituo1 2013-05-24 05:45:10
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Model mod = new Model();

ThreadTimer_item = new System.Threading.Timer(new System.Threading.TimerCallback(caculate_item), mod, 0, itemcycle);

}
private void caculate_item(object o)
{
while (!this.IsHandleCreated)
{
;
}
this.Invoke(new OutputDelegate(ItemOnSale), o);
}
public void ItemOnSale(object state)
{
Mode.a model = (Model.a)state;
获取model进行计算...
}
第二次开始定时器只能执行最后一个mod
怎么样才能够实现定时执行for循环中的所有mod
...全文
198 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chituo1 2013-05-26
  • 打赏
  • 举报
回复
遍历不行啊,定时器生效后只能传最后一个对象,之前的对象的信息都获取不到了
  • 打赏
  • 举报
回复
是我看错了,还以为你在for里面定义的 说你的需求还不太明白,但是定时器一个就够了 遍历可以试试我上面说的办法
chituo1 2013-05-24
  • 打赏
  • 举报
回复
只声明了一个全局变量system.threading.timer ThreadTimer_item 这个对象不声明全局不会启动定时器的,如何每一行生成timer?
  • 打赏
  • 举报
回复
针对每一行生成一个Timer? 那你看看外部维护一个Mode数组,每个Timer里将索引传进去 Mode.a model = this._modes[(int)state]; 看着很奇怪,.a是类型就大写

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧