Для Morpheus:
Я так и знал
Концептуально модель выглядит так:
----Первый поток--------------------
procedure Thread1.Execute;
begin
try
try
ADOConnection1.Connected:=True;
ADOConnection1.BeginTrans;
//Вызовы хранимых процедур....
except
end;
finally
ADOConnection1.CommitTrans;
ADOConnection1.Connected:=False;
Terminate;
end;
end;
----Второй поток--------------------
procedure Tread2.Execute;
begin
while not Terminated do begin
Synchronize(DoWork);
sleep(60000);
end;
end;
procedure Tread2.DoWork;
begin
try
try
DataModule1.Сommand.CommandText:='select 1 from dual';
DataModule1.Сommand.Execute;
except
end;
finally
end;
end;
----Вызов потоков--------------------
//Второй поток запускается в момент активации глаувной формы приложения
procedure TMainForm.FormActivate(Sender: TObject);
begin
fTread:=KeepAliveTread.Create(false);
fTread.FreeOnTerminate:=true;
end;
//Первый поток запускается пользователем
procedure TMainForm.Button1Click(Sender: TObject);
var sTread:Thread1;
begin
try
sTread:=Thread1.Create(true);
sTread.Priority:=tpNormal;
sTread.FreeOnTerminate:=true;
sTread.Resume;
except
end;
end;
Если у кого есть мысли или литература по этой теме, пожалуста пишите. Я с использованием потоков столкнулся недавно, поэтому еще много не знаю.