Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

передача ThreadID параметром [D7, WinXP]


GanibalLector ©   (2006-12-18 16:22:00) 

Есть главный поток приложения, в котором я запускаю вторичный поток.
BeginThread(nil,0,@Potok,nil,0,ThreadID)
Во вторичном потоке, я запускаю еще один поток, который будет посылать сообщения(PostThreadMessage) в этот(вторичный) поток. Хотелось бы,  при создании третьего потока передать ему параметром ThreadID вторичного потока.

function BeginThread(SecurityAttributes: Pointer; StackSize: LongWord; ThreadFunc: TThreadFunc; Parameter: Pointer;CreationFlags: LongWord; var ThreadId: LongWord): Integer;

Как это сделать ума не приложу...
Ведь на момент  BeginThread мне ThreadId еще не известен и я не могу его передать во вторичный поток, чтобы после передать в третий.
Можно, конечно, послать из главного потока вторичному сообщение с ThreadID...но это ИМХО вообще от Лукавого.

Сделал так : вынес ThreadID глобальной переменной

var
 Form1: TForm1;
 ThreadID:DWord;

implementation

{$R *.dfm}


Но очень хочеться без глобальной переменной, а параметром при создании потока.
Какие будут мысли ???


GanibalLector   (2006-12-18 20:20:00) [1]

2 clickmaker ©   (18.12.06 16:24) [1]
Спасибо!!! Оно ;)


clickmaker   (2006-12-18 16:24:00) [2]

погоди ка... а в функции Potok разве нельзя GetCurrentThreadId вызвать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо