Re: Thread Priority
- From: "Kevin Urben" <me@xxxxxxxxxxxx>
- Date: Sat, 28 Jun 2008 21:19:35 +0100
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;
{------------------------------------------------------------------------------}
.
- References:
- Thread Priority
- From: Kevin Urben
- Thread Priority
- Prev by Date: Delphi Layered Service Provider
- Next by Date: P/TByteArray and P/TWordArray very stupidly small.
- Previous by thread: Re: Thread Priority
- Next by thread: Delphi Layered Service Provider
- Index(es):