Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

Идентификатор потока.   Найти похожие ветки 

 
SbtON   (2004-12-27 12:55) [0]

Добрый день!
Подскажите, если не затруднит:
Как узнать состояние работы потока в главной форме? и как задавать идентификатор потока, для того чтобы из главной формы можно было легко приостанавливать и запускать снова?
Существует 10 потоков, их и надо контроллировать, потоки абсолютно идентичны (экземпляры), но запускаются с разными входными параметрами..


 
SbtON   (2004-12-27 13:44) [1]

Ответь-те же....... :(
Прям горю весь.. :]


 
Digitman ©   (2004-12-27 13:50) [2]


> состояние работы потока


что под "состоянием" подразумевается ?


> потока в главной форме


ни в главной ни в неглавной формах нет никаких потоков.


> как задавать идентификатор потока


какого ?


> чтобы из главной формы можно было легко приостанавливать
> и запускать снова?


хоть из главной хоть из неглавной приостанов/возобновление выполнения код.потока осуществляется вызовом SuspendThread(WinAPI) или TThread.Suspend(VCLAPI)


 
SbtON   (2004-12-27 13:56) [3]

>что под "состоянием" подразумевается ?
состояние: работает/не работает..
>ни в главной ни в неглавной формах нет никаких потоков.
Я имел ввиду, чтобы из формы, руками оператора запускать поток и останавливать, но выбирая точно, какой поток..

>> как задавать идентификатор потока
>какого ?
Всех 10-ти. Как мне определить что запущен тот поток, который нужен? Может пр запуске что-то сообщить ему?


 
Digitman ©   (2004-12-27 14:02) [4]


> руками оператора


оператор это кто ? юзер что ли ?
а юзеру оно надо - знать о каких-то там "потоках" ?


> Всех 10-ти


а если их у тебя будет 20 ?


 
SbtON   (2004-12-27 14:07) [5]

Так о том и речь.. Результаты выполнения потока садятся в стрингГрид и нужны для контроля выполнения, при этом юзер может приостановить каждый поток (поток ему не нужен, нужен результат), для запуска есть входной параметр, который читается из первой колонки StringGrida, остальные колонки - результат выполнения..


 
Digitman ©   (2004-12-27 14:13) [6]


> при этом юзер может приостановить каждый поток


это зачем ? ему результат что ли не нужен более ?

и вообще - трэды эти ты как создаешь ? средствами VCL или API ?


 
SbtON   (2004-12-27 14:28) [7]

Результат ему дает понять, что задуманной не осуществилось и он применяет другие рычаги воздействия! ;)
Трэды VCL..

Рассказываю суть:
Прога запускается и трэдами сканит директории и "типа" мультипоточно сливает файлы на FTP сервера..
Список FTP-серверов фиксирован и подгружается из ini-шников в первую колонку StringGrid"a.. Далее нужно (опять исходя из инишника) запустить нужные трэды и пусть сканют..(трэд запускается с паарметром имени в первой колонке - а это группа в инишнике) Но нужно иметь возможность включить ранее не работавшие и выключить ненужные..


 
Digitman ©   (2004-12-27 14:37) [8]


> Результат ему дает понять


так ведь если трэд приостановить, он и результата не сформирует .. ибо он не работает в это время) ..


> применяет другие рычаги воздействия


на кого ?!


> Трэды VCL


объекты класса TThread имеет методы Suspend/Resume


 
SbtON   (2004-12-27 14:39) [9]

Так если есть проблемы с коннектом, зачем дальше сканить? Юзер выключает трэд.. Но как? Как мне определить какой вырубить.. Я через PopUp меню на таблице делаю выключение, но какой трэд гасить? Вот в чем проблема.. Можно же все прибить.. А надо только один, а остальные пусть и работают дальше.. :)


 
Digitman ©   (2004-12-27 14:54) [10]


> SbtON   (27.12.04 14:39) [9]


вопросов к твоей логике а-ля "гасить", "прибить" - куча ..
вот только стоит ли их задавать ... логика, чувствуется, крива изначально ..

а конкретно по теме "Как мне определить какой вырубить" -  это тебе лучше знать, ибо именно ТЫ создаешь VCL-трэды и получаешь ссылки на каждый из них, для каждой из которых далее можно считывать св-во Suspended и применять методы св-во Suspend/Resume


 
SbtON   (2004-12-27 14:58) [11]

Ну я же изначально и спрашивал.. С трэдами раньше не работал.. У меня их несколько экземпляров, создаются в входным параметром и работает.. Но я не пойму как однозначно определить Thread.. Где ссылки-то эти?


 
Digitman ©   (2004-12-27 15:00) [12]


> Где ссылки-то эти?


известно где - в Караганде ..

ты сподобился ли по сей момент фрагмент кода создания трэда привести ?
нет ?
ну так а чего ж тебе еще надобно, старче ?


 
SbtON   (2004-12-27 15:07) [13]

Злой ты! ;)

type
 TFtpThread = class(TThread)
    NMF : TNMFTP;
    flbThread : TFileListBox;
 private
   FAbon:string;
   st:string;
      { Private declarations }
 protected
   procedure Execute; override;
 public
   constructor Create(Abon:string);
   
 end;

implementation

uses ufMain;

constructor TFtpThread.Create(Abon:string);
Begin
 inherited Create(True);
 FreeOnTerminate:=True;
 FAbon:=Abon;
 Self.Priority:=tpNormal;
 Resume;
End;

procedure TFtpThread.Execute;
const mask="*.*";
var ini : TInifile;
     fa:integer;
     lf:string;
и т.д.

Сам Thread из формы пока запускается как
TFtpThread.Create("xxx");

Со строковым параметром..


 
Digitman ©   (2004-12-27 15:30) [14]


> Злой ты


не демонстрируй тупость - и никто никогда для тебя злым не будет.


> Сам Thread из формы пока запускается как
> TFtpThread.Create("xxx");


тебе про ссылку был мой вопрос ? или не был ?

ты вообще-то в курсе, что конструирующий метод (каковым является в т.ч. и метод TFtpThread.Create) является ФУНКЦИОНАЛЬНЫМ методом ?

ты в курсе, что функциональный метод объекта, точно так же как и обыкновенная ф-ция, возвращает результат ?

ну так а какого же .. ты не фиксируешь этот результат ?

какого .. ты вызываешь функц-ный метод класса как процедурный, теряя рез-т его выполнения ?


 
Digitman ©   (2004-12-27 15:32) [15]


> Прям горю весь


вот оно и видно - мол, нафих мне справки да книжки дурацкие читать, мне. мол, прямо щас нада, потому что, мол, невтерпеж слепить то чего пока не понимаю


 
SbtON   (2004-12-27 15:40) [16]

О! Теперича понял.
Кстати, понимаю что хочу слепить, но уровень программирования низок.. это факт. Размазывать меня не имеет смысла, поскольку на это мне не стоит обижаться - программирование не мой конек, а вот от помощи не отказался бы.. Программа действительно нужна и можно было бы и без потоков обойтись, но пока есть желание сделать что-нибудь посложнее одноформенных приложений.. Хотя и их у меня мало..


 
Digitman ©   (2004-12-27 15:49) [17]


> что-нибудь посложнее одноформенных приложений


тогда тебе следует на полном серьезе разобраться со следующим утверждением :

термин "одноформенное приложение"  НЕ имеет никакой связи с термином "однопоточное приложение"

равно как и термин "однопоточное приложение"  НЕ имеет никакой связи с термином "одноформенное приложение"


 
SbtON   (2004-12-27 15:57) [18]

Может у тебя ICQ есть? мой 316040706
А то у нас в форуме какая-то полемика..


 
Digitman ©   (2004-12-27 16:00) [19]


> SbtON   (27.12.04 15:57) [18]


а может у тебя пример мультипоточного придожения есть ? в демо-проекте threads.dpr ? а должен быть, кстати ..


 
SbtON   (2004-12-27 16:02) [20]

есть! ;)
Давай уже аську, злодей! :))


 
Digitman ©   (2004-12-27 16:06) [21]


> SbtON   (27.12.04 16:02) [20]
> есть! ;)


вот и разбери его сначало по ниточкам ..


> Давай уже аську


"давалка" уже сломалась, "добродей"


 
SbtON   (2004-12-27 16:10) [22]

Эх.. вот так всегда..
Люди все злые какие-то.


 
Digitman ©   (2004-12-27 16:46) [23]


> SbtON   (27.12.04 16:10) [22]


нет ну а в чем проблема-то ?
что-то конкретное непонятно ? пожалуйста ! задавай вопрос сюда .. любо-дорого помочь конкретным ответом на конкретный вопрос ..


 
Alexander Panov ©   (2004-12-27 17:28) [24]

SbtON   (27.12.04 15:40) [16]
Поищи здесь на сайте статьи по потокам.



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

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

Наверх




Память: 0.53 MB
Время: 0.03 c
10-1080297097
IgorYak
2004-03-26 13:31
2005.01.16
TClientDataSet.ApplyUpdates (CORBA - Delphi 6, Kylix)


1-1104321474
AlexXn
2004-12-29 14:57
2005.01.16
Popup Form


1-1104512464
Cheguevara
2004-12-31 20:01
2005.01.16
Как загрузить в массив картинку


3-1102938329
able
2004-12-13 14:45
2005.01.16
Выборка в базе..


3-1103174137
_sulent
2004-12-16 08:15
2005.01.16
Пользователи