Timer的问题

tianhuo_soft 2009-03-28 09:59:10

假设 Timer1.TnterVal=1000;
但事件里有一个操作1秒以内没有完成,需要10秒才能完成
我现在只能动态的控制enable属性

timer自身有没有 ,要把事件内的全部代码执行完毕在进行一下一个周期


...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cja03 2009-03-28
  • 打赏
  • 举报
回复
要中断的话:

void timer_Tick(object sender, EventArgs e)
{
timer.Enabled=false;

// do something which lasts more than 10 seconds..

timer.Enabled=true;
}
lingyi214 2009-03-28
  • 打赏
  • 举报
回复
支持楼上的~~~
在中断里面只设标记量,并不直接做这个事。
而是在外面开一个线程来做死循环,也就是轮询,不断监测这个变量的值,然后作出反应~
NeilChen123 2009-03-28
  • 打赏
  • 举报
回复
bool isRunning = false;

void timer_Tick(object sender, EventArgs e)
{
if (isRunning)
return;

isRunning = true;

// do something which lasts more than 10 seconds..

isRunning = false;
}
tianhuo_soft 2009-03-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 aa37742698 的回复:]
我也遇见过 获取数据 需要10秒 但设置成一秒就会卡在呢里 暂时没找到什么解决方法 只能吧时间设置长点 LZ找到的话 说下 Q:315413575
[/Quote]

在执行块控制enable
q.39869602
aa37742698 2009-03-28
  • 打赏
  • 举报
回复
我也遇见过 获取数据 需要10秒 但设置成一秒就会卡在呢里 暂时没找到什么解决方法 只能吧时间设置长点 LZ找到的话 说下 Q:315413575
cja03 2009-03-28
  • 打赏
  • 举报
回复
是不是用了System.Windows.Forms.Timer?

用System.Timers.Timer就不会有这个问题。
tianhuo_soft 2009-03-28
  • 打赏
  • 举报
回复
up

111,126

社区成员

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

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

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