Форум: "Начинающим";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
ВнизКак правильно синхронизировать thread? Найти похожие ветки
← →
dracula © (2007-04-12 14:52) [0]Проблема вот в чём, создаю thread там идёт создание базы файлов, затем вызываю из этогоже threada процедуру в ней происходит определённые вычисления, и вот из неё то и надо выполнить процедуру с синхронизацией которая обращается к VCL (причём она находится в другом юните).
unit1
...
TFooThread = class(TThread)
private
protected
procedure Execute; override;
end;
var execute : TFooThread;
...
procedure TFooThread.Execute;
begin
...
FindD(name: string);
end;
procedure FindD(name: string);
begin
...
Synchronize(Add(name)); Вот это вот и надо синхронизировать.
end;
unit2...
procedure Add(name: string);
begin
....
end;
← →
Сергей М. © (2007-04-12 15:03) [1]TFooThread = class(TThread)
private
AName: String;
procedure SyncAdd;
protected
procedure FindD(name: string);
procedure Execute; override;
end;
procedure TFooThread.Execute;
begin
...
FindD(name);
end;
procedure TFooThread.SyncAdd;
begin
Add(AName);
end;
procedure TFooThread.FindD(name: string);
begin
...
AName := Name;
Synchronize(SyncAdd);
end;
← →
dracula © (2007-04-12 15:58) [2]>>> to Сергей М.
Спасибо огромное, очень помог, всё заработало!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.044 c