![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Идентификатор потока. [D6, Win2k, WinXP]
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, остальные колонки - результат выполнения..