a();
Thread.sleep(1000);
b();
Thread.sleep(1000);为什么我的c# 过了两秒后 才执行a() b() 而不是1秒一个?

解决方案 »

  1.   

    就你贴的这一点。
    应该是立刻执行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();
      

  2.   

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