thread sleep

我不是稻草人 2010-06-19 12:16:07
a();
Thread.sleep(1000);
b();
Thread.sleep(1000);

为什么我的c# 过了两秒后 才执行a() b() 而不是1秒一个?
...全文
51 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-06-19
  • 打赏
  • 举报
回复
就你贴的这一点。
应该是立刻执行a()
然后停1秒,执行 b(),再停1秒。然后退出方法,继续执行消息循环。
如果你的a,b中,做了某些操作,需要等消息循环来处理,那你这样单线程操作,就会在2秒后,执行消息循环时候才看到效果。你这样修改试试。
int tick = Environment.TickCount;
while(Environment.TickCount-tick<1000)Application.DoEvents();
a();
tick = Environment.TickCount;
while(Environment.TickCount-tick<1000)Application.DoEvents();
b();
  • 打赏
  • 举报
回复
a和b干了什么呢?

你是怎么知道他们2秒才执行的呢?a是肯定一开始就会执行的。从你的代码看,似乎输出是在最后一个sleep之后才导致的。

110,536

社区成员

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

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

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