ورود

View Full Version : اجرای همزمان بیش از یک Thread در برنامه Console



nightHunter
جمعه 08 فروردین 1393, 21:32 عصر
با سلام

در یک برنامه کنسول چند Thread ساخته شده است ولی پس از اجرای آنها فقط اولین Thread اجرا میشود . آیا راهی وجود دارد که بتوان همزمان بیش از یک Thread را اجرا نمود .

بنده از Thread ها به جای Timer استفاده میکنم و وقفه هایی با میزان زمان متناسب با نیاز برنامه در هر Thread ایجاد میکنم و به این ترتیب کار Timer رو انجام میدهم .

لطفا راهنمایی بفرمایید .
متشکرم .

Mask
شنبه 09 فروردین 1393, 00:56 صبح
مرحمت بفرمایید کد قرار بدید.

nightHunter
شنبه 09 فروردین 1393, 10:17 صبح
سلام


TTimerThread = class(TThread)
private
FTickEvent: THandle;
protected
procedure Execute; override;
public
CanTerminate : Boolean;
constructor Create(CreateSuspended: Boolean);
destructor Destroy; override;
procedure FinishThreadExecution;
end;

//

constructor TTimerThread.Create(CreateSuspended: Boolean);
begin
inherited;
FreeOnTerminate := True;
FTickEvent := CreateEvent(nil, true, False, nil);
end;

destructor TTimerThread.Destroy;
begin
CloseHandle(FTickEvent);
inherited;
end;

procedure TTimerThread.FinishThreadExecution;
begin
Terminate;
SetEvent(FTickEvent);
end;


//

Timer:=TTimerThread.Create(true);
Timer.CanTerminate := False;
Timer.FreeOnTerminate := True;


هر کدام از Thread ها به این ترتیب تعریف میشوند ولی متاسفانه فقط یکی از آنها کار میکند .
با تشکر