Вниз
Скачать: CL | DM;

поток и объявление процедуры   Найти похожие ветки 

← →
KIM   (2005-11-15 20:28) [0]

всем привет
приложение запускает поток(Tthrd1) который запускает еще несколько потоков(Tthrd2) в какой секции Tthrd1 объявить процедуру чтоб она была доступна в потоках(Tthrd2) ???

P.S.  Tthrd1 <> Tthrd2


← →
begin...end ©   (2005-11-15 21:08) [1]

Переформулируйте вопрос.


← →
KIM   (2005-11-16 00:19) [2]

чтото более простой формулировки придумать не получается

а в каком месте не понятно ??


← →
Leonid Troyanovsky ©   (2005-11-16 09:18) [3]


> KIM   (15.11.05 20:28)  

> приложение запускает поток(Tthrd1) который запускает еще
> несколько потоков(Tthrd2) в какой секции Tthrd1 объявить
> процедуру чтоб она была доступна в потоках(Tthrd2) ???


Т.к. Tthrd1 запускает Tthrd2, то после создания последнего
ему можно передать ссылку на нужный метод Tthrd1.
Например,

type
Tthrd1 = class (TThread)
private
  procedure XXX (Sender: TObject); // вызываемый метод
  ..
end;

Tthrd2 = class(TThread)
private
  FOnXXX : TNotifyEvent; // ссылка
  ..
protected
  procedure DoXXX; dynamic; // метод диспетчеризации
  ..
public
  property OnXXX: TNotifyEvent read FOnXXX write FOnXXX;
end;

procedure Tthrd2.DoXXX; // вызов метода по ссылке FOnXXX
begin
  if Assigned(FOnXXX) then
    FOnXXX(Self);
end;

 procedure Tthrd1.Execute; // override;
 begin
   ..
   with Tthrd2.Create(True) do
      begin
        ..
        OnXXX := XXX; // назначили ссылку
        Resume; // пустили поток
      end;
    ..
 end;


Ну, а Tthrd2 в нужных местах вызывает DoXXX, который, собс-но, и
выполняет метод XXX класса Tthrd1.

Кроме того, весьма вероятно, что оные манипуляции потребуют на
каком-то этапе синхронизации (see also: TThread.Synchronize).

--
Regards, LVT.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.025 c
2-1131904644
on-lite
2005-11-13 20:57
2005.12.04
Фильтр отображения TDBGrid


6-1125046155
Cyberdemon
2005-08-26 12:49
2005.12.04
Нужно идея по рганизации Client/Server приложения


14-1132132934
Zhekson
2005-11-16 12:22
2005.12.04
Вопрос на засыпку


4-1128372636
JJohn
2005-10-04 00:50
2005.12.04
В куче - список из строк(HeapAlloc &amp; HeapFree)


14-1131561267
ArtemESC
2005-11-09 21:34
2005.12.04
Зашифрованный диск...




   Наверх