procedure ThreadExecutePoc(P:Pointer);
begin
WaitForSingleObject(EventHandle,10000);
if boolean(p) then
Form1.Edit1.Text:='Event1'
else
Form1.Edit2.Text:='Event2';
EndThread(0);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
h:Thandle;
t:cardinal;
begin
h:=beginthread(nil,0,@ThreadExecutePoc,Pointer(true),0,t);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
h:Thandle;
t:cardinal;
begin
h:=beginthread(nil,0,@ThreadExecutePoc,Pointer(false),0,t);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
setevent(EventHandle);
end;
刚才写了一段测试代码,试了一下应该是触发一次,问题可能处在
procedure WaitForTranEvent(FAdoconn:TAdoconnection);
begin
if FAdoConn.InTransaction then WaitForSingleObject(TranEventHandle,500);
end;