时间间隔问题

冰凝瞬间1986 2010-07-19 04:02:29
我有一个流程,分为5步执行,执行下一步之前有个时间间隔,但这时间间隔不等,怎样实现。

如果是相等时间间隔可以用定时器来实现
...全文
172 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
LovingAlison 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hucailin 的回复:]

timer1.Interval = 2000设置2秒,当timer1.enable=true的时候,定时器是马上运行还是过2秒开始运行?我昨天调试的时候是过2秒开始运行的,以前记得好像是一开始就运行了。
[/Quote]

根据timer的原理 应该是2秒后才执行tick事件的
冰凝瞬间1986 2010-07-20
  • 打赏
  • 举报
回复
timer1.Interval = 2000设置2秒,当timer1.enable=true的时候,定时器是马上运行还是过2秒开始运行?我昨天调试的时候是过2秒开始运行的,以前记得好像是一开始就运行了。
冰凝瞬间1986 2010-07-20
  • 打赏
  • 举报
回复
我已经用线程解决了,我会试着用timer看看的
chenxicheng 2010-07-20
  • 打赏
  • 举报
回复
引入个中间变量作为次数
剩下每次给变量赋不同的值
LovingAlison 2010-07-19
  • 打赏
  • 举报
回复
最初时候你要设置 timer1.Interval = 2000; 因为第一次不会进去 你要提前设置 或者你在load时候设置
LovingAlison 2010-07-19
  • 打赏
  • 举报
回复
秒么?

int i = 1;
private void timer1_Tick(object sender, EventArgs e)
{
if (i > 5)
timer1.Enabled = false;
label1.Text = i.ToString();
i++;
SetInterval();
}

void SetInterval()
{
switch (i)
{
case 1:
timer1.Interval = 2000;
break;
case 2:
timer1.Interval = 2000;
break;
case 3:
timer1.Interval = 5000;
break;
case 4:
timer1.Interval = 20000;
break;
case 5:
timer1.Interval = 3000;
break;
}
}

t20100504t 2010-07-19
  • 打赏
  • 举报
回复
UPUPPPPP
冰凝瞬间1986 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 kevin_cheung 的回复:]
引用 11 楼 hucailin 的回复:

引用 8 楼 bdmh 的回复:
那你就用timer,每次都去修改间隔


修改时间间隔的时候,第一次无效吧,只有第二次开始有效
请问如何修改


应该可以的 你分别想间隔多久 我写给你
[/Quote]

2 2 5 20 3
LovingAlison 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hucailin 的回复:]

引用 8 楼 bdmh 的回复:
那你就用timer,每次都去修改间隔


修改时间间隔的时候,第一次无效吧,只有第二次开始有效
请问如何修改
[/Quote]

应该可以的 你分别想间隔多久 我写给你
冰凝瞬间1986 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bdmh 的回复:]
那你就用timer,每次都去修改间隔
[/Quote]

修改时间间隔的时候,第一次无效吧,只有第二次开始有效
请问如何修改
冰凝瞬间1986 2010-07-19
  • 打赏
  • 举报
回复
private void tFirstStep_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
frmFun.MakeCall("1","");
tFirstStep.Enabled = false;
tSecondStep.Enabled = true;
}

private void tSecondStep_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
frmFun.MakeCall("4", "");
tSecondStep.Enabled = false;
tThirdStep.Enabled = true;
}


这是我写的,但是可以在tSecondStep.Enabled = true;的时候隔一个时间间隔执行吗,这样就实现了要求
萤火架构 2010-07-19
  • 打赏
  • 举报
回复
给每个流程设置一个时间间隔,执行完一个步骤,设置下一步的定时器时间间隔
bdmh 2010-07-19
  • 打赏
  • 举报
回复
那你就用timer,每次都去修改间隔
冰凝瞬间1986 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bdmh 的回复:]
引用 5 楼 hucailin 的回复:
暂时不考虑线程

这是线程吗,老大,这是你主线程,也就是你主程序,不要乱讲啊
[/Quote]


知道是主线程,但是不考虑这样的方法,先
bdmh 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hucailin 的回复:]
暂时不考虑线程
[/Quote]
这是线程吗,老大,这是你主线程,也就是你主程序,不要乱讲啊
冰凝瞬间1986 2010-07-19
  • 打赏
  • 举报
回复
暂时不考虑线程
dazhabai 2010-07-19
  • 打赏
  • 举报
回复
thread.sleep(你想要的时间)
LovingAlison 2010-07-19
  • 打赏
  • 举报
回复
this.timer1.Interval = 1000;

这样可以修改间隔的 你5步 肯定是5个事件(有可能是相同的事件)去触发的 完成一个后 修改下间隔就好了
q107770540 2010-07-19
  • 打赏
  • 举报
回复
这个时间间隔 可有什么规律?
没有规律就用random生成
bdmh 2010-07-19
  • 打赏
  • 举报
回复
System.Threading.Thread.Sleep(1000);   

1000可以改成你的间隔

110,531

社区成员

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

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

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