Delphi中多线程用Synchronize实现VCL数据同步显示,Delphi中多线程用Synchronize实现VCL数据同步显示
转自:http://blog.csdn.net/maxcode/archive/2006/05/12/726766.aspx
转自:http://blog.csdn.net/maxcode/archive/2006/05/12/726766.aspx
概述:
VCL实现同步的另一种方法就是调用线程类的Synchronize的过程,此过程需要一个无参数的procedure,故在此procedure中无法传递参数值,但可以通过类的成员来实现。在类的Execute中只须调用Synchronize就可以了。
实现:
关键在于对Synchronize参数的定义。定义一个无参数的procedure通过它来访问类的成员变量szName和nIndex。在类的重载Execute中调用Synchronize。子类的定义如下:
unit
TChildThread;
interfaceuses =Classes,
Messages,Windows,SysUtils;
const MAX_LEN = 260;
typeTChildThreads = class(TThread)
private { Private declarations }protectedprocedure Execute; override;//同步函数的声明
procedure UpdateData;
public
szName : array[0..MAX_LEN] of Char;
nIndex : Integer;end;implementationuses
Unit1;
{ Important: Methods and properties