个是静态函数,声明如下:
classprocedureSynchronize(AThread:TThread;AMethod:TThreadMethod);overload;
classprocedureSynchronize(AThread:TThread;AThreadProc:TThreadProcedure);overload;
procedureSynchronize(AMethod:TThreadMethod);overload;
procedureSynchronize(AThreadProc:TThreadProcedure);overload;
AThread参数是当前线程,TThreadMethod是对象的函数指针类型,TThreadProcedure是匿
名函数类型。
注意:Synchronize()的AMethod或AThreadProc参数必须是一个无参数的procedure,
故在此procedure中无法传递参数值,通常的解决方法是程类中增加额外的成员,用其
代替参数来传递信息。
例:
type
TMyThread=class(TThread)
str:string;//额外的域,代替参数将字符串写入Memo
...
procedureTMyThread.WriteMemo;
begin
Memo.Lines.Add(str);
end;
...
procedureTMyThread.Execute;
begin
str:='Hello';
synchronize(WriteMemo);
end;
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-32871-24.html
正义必胜