Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Обращение к потоку из VCL


Автор: neweraser 15.6.2012, 09:10
Здравствуйте! 
Существует несколько копий потока TThread с разными входными данными. Как обратиться к одному из них, чтобы изменить данные (зная, что в этот момент он находится в suspend), или хотя бы просто запустить его. Возможно ли такое? Возможно, что-то не так сформулировал, если что - поправлю. Код приводить не буду, т.к. там и так путанница, да и думаю он тут не нужен. Мне интересен сам процесс, как это сделать. 
ps. 
Цитата
Многопоточность - как это делается в Дельфи
 - читал, но не полностью, время жмет, но в основах вроде разобрался.

Автор: CynicRus 15.6.2012, 10:00
Э....А зачем? Думается мне, можно завершить отработавший поток, а затем просто создать новый с новыми данными...

Автор: neweraser 15.6.2012, 10:07
Можно и так, просто у меня на этот поток отдельный unit, и я хотел набить его по максимуму, передавать параметры и по ним выполнять определенные процедуры, вот такое вот глупое извращение  smile буду думать дальше, спасибо.

Автор: CynicRus 15.6.2012, 10:17
А вообще к потоку можно обратиться через PostThreadMessage.

Автор: neweraser 15.6.2012, 10:37
Можно пример? Если у меня несколько копий потока, как вернуть хэндл нужного мне и обратиться к нему?

Автор: CynicRus 15.6.2012, 11:32
Пробежаться по массиву потоков и проверить его состояние. Если приостановлен - значит тот что нужен. Если я правильно понял критерий "нужности".

Автор: MetalFan 15.6.2012, 18:09
А вообще вызывать suspend потока считается моветоном... Надо использовать объекты синхронизации и функции ожидания...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)