Re: Thread Priority



Here's the code:

{------------------------------------------------------------------------------}

type
TDaqThread = class(TThread)
private
hWindow : THandle;
LastData : Longword;
Paused : Boolean;
protected
constructor Create(hForm : THandle);
procedure Execute; override;
end;

{------------------------------------------------------------------------------}

constructor TDaqThread.Create(hForm : THandle);

begin
inherited Create(True); { create suspended
thread }
Priority:=tpNormal;
FreeOnTerminate:=True;
hWindow:=hForm;
Paused:=False;
DAQmxReadDigitalScalarU32(hTask0, 0.0, LastData, nil);
LastData:=LastData and 1;
end;

{------------------------------------------------------------------------------}

procedure TDaqThread.Execute;
var
Data : Longword;

begin
while not Terminated do
begin
Sleep(20);
if Paused then Continue;
DAQmxReadDigitalScalarU32(hTask0, 0.0, Data, nil);
Data:=Data and 1;
if (Data<>LastData) and (Data=0) then
PostMessage(hWindow, START_TEST, 0, 0);
LastData:=Data;
end;
end;

{------------------------------------------------------------------------------}

procedure DaqSuspendThread;

begin
DaqThread.Paused:=True;
end;

{------------------------------------------------------------------------------}

procedure DaqResumeThread;

begin
DaqThread.Paused:=False;
end;

{------------------------------------------------------------------------------}


.