我继承了TThread,自己定义了一个线程类,其中我希望有一段延时功能,
于是我用了sleep(50);但后来我在创建这个类的几个对象时发现,当其中
一个对象执行sleep语句时,会影响到其他的对象执行。
  即我希望实现一段延时功能,但对象之间的延时互不干饶,我当然不希望用
类似执行空的for语句来实现,请问有何方法?

解决方案 »

  1.   

    Sleep本身不会造成线程之间阻塞问题的啊?
    我怀疑是你代码具体处理的问题..
    另外,有一种情况,关于SLEEP,当处理COM的Apartment线程模式时候,
    因为它是使用了WINDOWS消息,这时候使用sleep会造成同一个线程里面
    多个Apartment之间阻塞..
      

  2.   

    检查一下你的Sleep是否在线程内部(Execute函数中)运行,
    如果仅仅将它放在线程类的方法中而不让Execute去调用的,是不行的
      

  3.   

    Sleep是不会造成线程间阻塞的,Sleep是线程独立的请检查你的具体代码了
      

  4.   

    sleep会阻塞消息的分发
    如果你需要得到某一个线程的返回值,不应该用延时,应该通过执行Thread.WaitFor()得到ReturnValue或自定义的返回成员,而且必须由你释放线程,而不是自动释放。