O
okgxsh
Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个activeform控件,想在其中创建一个线程来执行查询操作!可我建立了线程在exe程序中完全能够调用,
可是放到控件中就不能调用了?不知道是何原因??代码如下
//
type
//定义一个线程类
TsyncThread = class(TThread)
protected
procedure execute
override;
end;
。。。
var
//定义互斥对象句柄
HMutex: THandle = 0;
implementation
{$R *.dfm}
//线程执行主体
procedure TSyncThread.execute;
var
i: integer;
WaitReturn: DWORD;
begin
FreeOnTerminate := True;
//进入同步,防止其他线程访问
WaitReturn := WaitForSingleObject(HMutex, INFINITE);
begin
...................
end;
end;
//在窗体创建时,创建互斥量
procedure TfrmMutex.FormCreate(Sender: TObject);
begin
HMutex := CreateMutex(nil, false, nil);
end;
//在窗体释放时,释放互斥量
procedure TfrmMutex.FormDestroy(Sender: TObject);
begin
CloseHandle(HMutex);
end;
//创建线程实例
procedure TfrmMutex.btnExecuteClick(Sender: TObject);
begin
TSyncThread.Create(false);
end;
activeform控件中无法创建线程,不知道是何原因??????
可是放到控件中就不能调用了?不知道是何原因??代码如下
//
type
//定义一个线程类
TsyncThread = class(TThread)
protected
procedure execute
override;
end;
。。。
var
//定义互斥对象句柄
HMutex: THandle = 0;
implementation
{$R *.dfm}
//线程执行主体
procedure TSyncThread.execute;
var
i: integer;
WaitReturn: DWORD;
begin
FreeOnTerminate := True;
//进入同步,防止其他线程访问
WaitReturn := WaitForSingleObject(HMutex, INFINITE);
begin
...................
end;
end;
//在窗体创建时,创建互斥量
procedure TfrmMutex.FormCreate(Sender: TObject);
begin
HMutex := CreateMutex(nil, false, nil);
end;
//在窗体释放时,释放互斥量
procedure TfrmMutex.FormDestroy(Sender: TObject);
begin
CloseHandle(HMutex);
end;
//创建线程实例
procedure TfrmMutex.btnExecuteClick(Sender: TObject);
begin
TSyncThread.Create(false);
end;
activeform控件中无法创建线程,不知道是何原因??????