delphi中线程应用之Synchronize()

当一个线程在使用时,如果这个函数使用了Synchronize修钸的话就不允许别一个线程来调用这个函数,它的目的是避免多个子线程同时访问主线程资源。
示例:
procedure ServerThread.ListItemEnd; //子线程的一个方法
begin
if (ListItem <> nil) then
ListItem.SubItems.Strings[3] := '传送完毕'; //ListItem是主线程的一个TreeView的一行
end;

procedure ServerThread.ClientExecute; //子线程执行
begin
Synchronize(ListItemEnd);
//如果直接写ListItemEnd,可能发生冲突。
end;

      当创建了多个线程,并且多个线程都要访问同一资源,,就有可能出现混乱,于是用Synchronize来控制,使同一时间只有一个线程使用那部分资源,Synchronize参数里面的代码就是多线程需要公共的代码!


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jqandjq/archive/2010/06/01/5638781.aspx

来自:http://blog.sina.com.cn/s/blog_6875fdbe0100pwbq.html

posted @ 2013-06-23 15:52  stma  阅读(686)  评论(0)    收藏  举报