rayangostar_co
چهارشنبه 05 شهریور 1393, 09:31 صبح
با سلام خدمت دوستان و اساتید محترم
من تو پروژم نیاز دارم تا یه کوئری و هر چند دقیقه یک بار اجراء کنم.
لطفا رهنمایی کنید چطور میتونم استفاده کنم
کاری که خودم انجام دادم اینکه یه Thread پیاده سازی کردم و کوئری خودم و تو رویداد Onexecute نویشتم.
بعد تو Timer تو رویداد OnTimer ایجادش کردم و استارتش میکنم.
مشکلی که دارم اینکه وقتی بعد زمانی معین Interval تایمر دوباره میخوام thread و استارت کنم خطای زیر برام اومد can not start on a running or suspended thread
procedure TMainForm.Timer1Timer(Sender: TObject);begin
if not(Assigned(MsgOnline)) then
begin
MsgOnline := TMsgOnline.Create(Common);
// MsgOnline.Suspended := true;
MsgOnline.FreeOnTerminate := true;
MsgOnline.command := 'Admin';
MsgOnline.OnMsgOnline := Self.DoMsgOnline;
MsgOnline.start;
end
else
begin
if MsgOnline.started then
begin
MsgOnline.Suspend;
MsgOnline.Terminate;
MsgOnline.Free;
end;
MsgOnline := TMsgOnline.Create(Common);
MsgOnline.command := 'Admin';
MsgOnline.OnMsgOnline := Self.DoMsgOnline;
MsgOnline.start;
grdAdminMsg.DataSource := Common.dsMsgAdmin;
end;
// MsgOnline.
// MsgOnline.Terminate;
end;
من تو پروژم نیاز دارم تا یه کوئری و هر چند دقیقه یک بار اجراء کنم.
لطفا رهنمایی کنید چطور میتونم استفاده کنم
کاری که خودم انجام دادم اینکه یه Thread پیاده سازی کردم و کوئری خودم و تو رویداد Onexecute نویشتم.
بعد تو Timer تو رویداد OnTimer ایجادش کردم و استارتش میکنم.
مشکلی که دارم اینکه وقتی بعد زمانی معین Interval تایمر دوباره میخوام thread و استارت کنم خطای زیر برام اومد can not start on a running or suspended thread
procedure TMainForm.Timer1Timer(Sender: TObject);begin
if not(Assigned(MsgOnline)) then
begin
MsgOnline := TMsgOnline.Create(Common);
// MsgOnline.Suspended := true;
MsgOnline.FreeOnTerminate := true;
MsgOnline.command := 'Admin';
MsgOnline.OnMsgOnline := Self.DoMsgOnline;
MsgOnline.start;
end
else
begin
if MsgOnline.started then
begin
MsgOnline.Suspend;
MsgOnline.Terminate;
MsgOnline.Free;
end;
MsgOnline := TMsgOnline.Create(Common);
MsgOnline.command := 'Admin';
MsgOnline.OnMsgOnline := Self.DoMsgOnline;
MsgOnline.start;
grdAdminMsg.DataSource := Common.dsMsgAdmin;
end;
// MsgOnline.
// MsgOnline.Terminate;
end;