winform下timer使用多线程

luli327 2009-03-12 09:14:07

private void timing_Click(object sender, EventArgs e)
{

System.Windows.Forms.Timer t1 = new System.Windows.Forms.Timer(components);

//t1.Interval = pj.project_interval*60*60*1000;
t1.Interval =10000;
t1.Enabled = true;
t1.Tick += new EventHandler(t1_Tick);

}
void t1_Tick(object sender, EventArgs e)
{
//throw new NotImplementedException();
System.Threading.WaitCallback waitCallback = new WaitCallback(collectionsafe);

ThreadPool.QueueUserWorkItem(waitCallback, id);//这里我要调用一个带参数的方法

}

现在问题是我每次点击,都只能执行最后一个Timer,怎么使多次点击后Timer都运行呢?
...全文
572 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ximi82878 2009-05-16
  • 打赏
  • 举报
回复
没用过多线程的帮你顶下
fenglaijun 2009-05-16
  • 打赏
  • 举报
回复
很少用多线程。不能帮你
luli327 2009-03-12
  • 打赏
  • 举报
回复
求多线程定时执行的例子
luli327 2009-03-12
  • 打赏
  • 举报
回复
jinjazz 还在么?
wwb82954323 2009-03-12
  • 打赏
  • 举报
回复
关注,学习
luli327 2009-03-12
  • 打赏
  • 举报
回复
jinjazz 能给个例子么?
jinjazz 2009-03-12
  • 打赏
  • 举报
回复
线程池,信号量,waitany...

这玩意不是用timer来实现的
luli327 2009-03-12
  • 打赏
  • 举报
回复
jinjazz 是要实现一个 定时的多线程抓取
shenling258 2009-03-12
  • 打赏
  • 举报
回复
求分!
杰克CZ 2009-03-12
  • 打赏
  • 举报
回复
需要使用Timer数组来做
int count = 0;

private void button1_Click(object sender, EventArgs e)
{
Timer[] timmerList = new Timer[100];
Timer t = timmerList[count];
t = new Timer();
t.Interval = 10000;
t.Tag = count;
t.Enabled = true;
t.Tick += new EventHandler(t1_Tick);
count++;
}

void t1_Tick(object sender, EventArgs e)
{
//throw new Exception("The method or operation is not implemented.");
int i = int.Parse(((Timer)sender).Tag.ToString());
Debug.WriteLine(i.ToString());
Debug.WriteLine("The method or operation is not implemented.");
}
luli327 2009-03-12
  • 打赏
  • 举报
回复
第二次點擊覆蓋了第一次建的對象 那怎么解决啊?
blestcc 2009-03-12
  • 打赏
  • 举报
回复
第二次點擊覆蓋了第一次建的對象
jinjazz 2009-03-12
  • 打赏
  • 举报
回复
用信号量waitone一下不就可以了
jinjazz 2009-03-12
  • 打赏
  • 举报
回复
已经多线程了还要timer干嘛啊
luli327 2009-03-12
  • 打赏
  • 举报
回复
顶上去看看
sabty 2009-03-12
  • 打赏
  • 举报
回复
private void timing_Click(object sender, EventArgs e)
{

System.Windows.Forms.Timer t1 = new System.Windows.Forms.Timer();

//t1.Interval = pj.project_interval*60*60*1000;
t1.Interval = 10000;
t1.Enabled = true;
t1.Tick += new EventHandler(t1_Tick);


void t1_Tick(object sender, EventArgs e)
{
//throw new NotImplementedException();
//System.Threading.WaitCallback waitCallback = new WaitCallback(collectionsafe);
//ThreadPool.QueueUserWorkItem(waitCallback, id);//这里我要调用一个带参数的方法

MessageBox.Show("1");
}
luli327 2009-03-12
  • 打赏
  • 举报
回复
哪位给个多线程定时的例子啊
luli327 2009-03-12
  • 打赏
  • 举报
回复

private List<System.Timers.Timer> timmerList = new List<System.Timers.Timer>();

我把timer添加到一个list里 还是不行
_see_you_again_ 2009-03-12
  • 打赏
  • 举报
回复
tl对象是在方法内部生成的,出了作用域之后缺少对象引用,可能被GC回收了。试试每次将tl对象添加到一个集合中。
luli327 2009-03-12
  • 打赏
  • 举报
回复
zhangchong_1018 .net下 timer有3种
加载更多回复(5)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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