Delphi中的线程类--之(5,大结局)[3]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 raptor 的 blog

          end;

          setevent(syncproc.signal);

        end;

      end;

    finally

      localsynclist.free;

    end;

  finally

    leavecriticalsection(threadlock);

  end;

end;

首先,这个方法必须在主线程中被调用(如前面通过消息传递到主线程),否则就抛出异常。

接下来调用resetsyncevent(它与前面setsyncevent对应的,之所以不考虑waitforsyncevent的情况,是因为只有在linux版下才会调用带参数的checksynchronizewindows版下都是调用默认参数0checksynchronize)。

现在可以看出synclist的用途了:它是用于记录所有未被执行的同步方法的。因为主线程只有一个,而子线程可能有很多个,当多个子线程同时调用同步方法时,主线程可能一时无法处理,所以需要一个列表来记录它们。

本文关键:Thread Event CriticalSection Synchronize
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top