You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.2 KiB
Plaintext
63 lines
1.2 KiB
Plaintext
unit u_MyThread;
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes;
|
|
|
|
type
|
|
TMyThread = class(TThread)
|
|
private
|
|
FOptype: string;
|
|
FMailQueNo: string;
|
|
FFlag: Boolean;
|
|
procedure SetOptype(const Value: string);
|
|
procedure SetMailQueNo(const Value: string);
|
|
|
|
function Myfun(qno:string):Boolean; // 原本参数传递交由 TMyThread的实例赋值完成
|
|
protected
|
|
procedure Execute; override;
|
|
public
|
|
property Optype: string read FOptype write SetOptype;
|
|
property MailQueNo: string read FMailQueNo write SetMailQueNo;
|
|
property MyFunRetVal: Boolean read FFlag default False;
|
|
constructor Create(qno:string );
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
u_tree_main;
|
|
|
|
function TMyThread.Myfun;
|
|
begin
|
|
// 假设这里做了操作UI的工作
|
|
frm_tree_main.sendmailBatch(MailQueNo);
|
|
FFlag := True;
|
|
end;
|
|
|
|
constructor TMyThread.Create(qno:string );
|
|
begin
|
|
inherited Create(True);
|
|
Self.FreeOnTerminate := True;
|
|
MailQueNo:=qno;
|
|
end;
|
|
|
|
procedure TMyThread.Execute;
|
|
begin
|
|
// 让操作UI的代码放回主线程中执行已保证同步
|
|
//Synchronize(Myfun);
|
|
FFlag := Myfun(FMailQueNo);
|
|
end;
|
|
|
|
procedure TMyThread.SetMailQueNo(const Value: string);
|
|
begin
|
|
FMailQueNo := Value;
|
|
end;
|
|
|
|
procedure TMyThread.SetOptype(const Value: string);
|
|
begin
|
|
FOptype := Value;
|
|
end;
|
|
end.
|