有三个线程线程 1 和 线程 2 共享同一资源需要同步处理.
线程 1 :程序启动就创建运行.
线程 2 : 偶尔执行 优先级高于 线程 1线程 3 (用Timer实现一个动画窗口不需要同步处理) 它与 线程 1 和 线程 2 无关. 只是在  线程 2 处理数据的时候才执行(也就是一个用户等待数据处理过程 因线程 2 处理数据时间有点长)
问题:线程 3 好像并不执行 直到 线程 2 执行完毕.请高手执教.!!!!!

解决方案 »

  1.   

    “用Timer实现一个动画窗口”
    TIMER不是线程,不会同步运行的!!要想同步还是要用线程滴……
      

  2.   

    有三个线程线程 1 和 线程 2 共享同一资源需要同步处理.
    线程 1 :程序启动就创建运行.
    线程 2 : 偶尔执行 优先级高于 线程 1线程 3 (用Timer实现一个动画窗口不需要同步处理) 它与 线程 1 和 线程 2 无关. 只是在  线程 2 处理数据的时候才执行(也就是一个用户等待数据处理过程 因线程 2 处理数据时间有点长)
    问题:线程 3 好像并不执行 直到 线程 2 执行完毕.请高手执教.!!!!!线程 2 创建后 ShowModal 一个窗口 该窗口有一个Timer显示动画 线程 2结束后发消息关闭ShowModal窗口.
    但是 ShowModal 窗口 的显示很不理想  并且动画也不执行 一直等到 线程 2 结束才闪烁了两下.
      

  3.   

    在线程2中里运行Synchronize(Method: TThreadMethod)
    在Method里执行线程3试试。