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

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

Идентификатор потока. [D6, Win2k, WinXP]


Страницы:   1 2

SbtON ©   (2004-12-27 12:55:00) 

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


Alexander Panov   (2004-12-27 17:28:00) [1]

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


Digitman   (2004-12-27 16:46:00) [2]


> SbtON   (27.12.04 16:10) [22]


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


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

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


Digitman   (2004-12-27 16:06:00) [4]


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


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


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


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


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

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


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


> SbtON   (27.12.04 15:57) [18]


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


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

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


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


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


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

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

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


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

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


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


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


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


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


> Злой ты


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


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


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

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

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

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

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


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

Злой ты! ;)

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:00:00) [13]


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


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

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


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

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


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


> SbtON   (27.12.04 14:39) [9]


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

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


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

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


Digitman   (2004-12-27 14:37:00) [17]


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


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


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


на кого ?!


> Трэды VCL


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


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

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

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


Digitman   (2004-12-27 14:13:00) [19]


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


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

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


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

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


Страницы:   1 2

Наверх

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