Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: 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 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
14-1132105445
OldNaum
2005-11-16 04:44
2005.12.04
Интересно ваше мнение


1-1131451006
ArhArhangel
2005-11-08 14:56
2005.12.04
импорт данных из Excel


14-1131788530
ronyn
2005-11-12 12:42
2005.12.04
Linux


2-1130822835
flatron84
2005-11-01 08:27
2005.12.04
Асемблер и Delphi


3-1129619631
MakNik
2005-10-18 11:13
2005.12.04
Номер по порядку...