哪位可以给我一个多线程同步中使用TEvent的例子程序阿

解决方案 »

  1.   

    TEvent形象的说就是全局变量,线程状态就是改个值罢了
      

  2.   


     global_Event:=TEvent.create(...);主线程中运行到这里
    ....
     thread2_Simple=TThread2_simple.create(...);
     global_Event.waitfor(时间);//挂在这里等待线程thread2_Simple将标志更改TThread2_simple.execute;
    begin
     .....执行你的操作global_Event.setevent;//更改标志,
    。他继续运行它的代码的同时,主线程也继续运行他的代码
    end;就这么简单的
      

  3.   

    不是主线程里waitfor是在子线程里我起先是直接将线程的挂起和唤醒放在timer里的
    但是那样线程不安全运行有问题在执行resume时线程没法起来只能用execute来执行挂起的子线程
    那样不能多次运行
      

  4.   

    不太理解楼主的意思,我一般是在主线程里“线程.Event.waitfor”等待所有运行的线程
    线程执行到需要同步的时候先Event.setevent通知主线程再挂起自身,当主线程收到全部的Event.setevent后再resume各线程