如何向线程的 OnTerminate 事件传递参数?(20分)

C

cgs1980

Unregistered / Unconfirmed
GUEST, unregistred user!
在主线程中启动了一个子线程, 启动时设置子线程的 OnTerminate 事件为主线程中自己定义的一个处理事件,如
MainThread.StartSubThread();
begin
with TSubThread.Create(str1)do
OnTerminate := ThreadDone;
//此处如何将 str1 参数传递给 ThreadDone ?
end;
MainThread.ThreadDone(Sender: TObject;
str1:string);
begin
if str1 = 'abc' then
ShowMessage('show some thing');
end;
 
传过来的Sender为TSubThread对象
可以强制转换
将Str参数设置为TSubThread的一个字段属性然后
(Sender as TSubThread).Str
 
ThreadDone这个的参数是固定的了,你不能直接在里面用了撒,再写一个带参数的函数,在ThreadDone里面调用这个函数就可以了嘛。但是觉得没有这个必要。
 
经过测试使用(Sender as TSubThread).Str 可以解决问题。谢谢回答!
 
顶部