Вниз
Скачать: 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.023 c
14-1131974326
Piter
2005-11-14 16:18
2005.12.04
HEX кодирование


10-1108398675
kostik78ua
2005-02-14 19:31
2005.12.04
ClientDataSet.Open


4-1128094188
NikNet
2005-09-30 19:29
2005.12.04
Как вставить в Фон ToolBar рисунок?


4-1128006382
NikNil
2005-09-29 19:06
2005.12.04
Как получить список всех пользователей.


3-1129812996
DelphiLexx
2005-10-20 16:56
2005.12.04
FIBDataSet и параметр




   Наверх