Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.039 c
4-1101726107
NetDigger
2004-11-29 14:01
2005.01.16
Траблы с NamedPipes


14-1104220697
WondeRu
2004-12-28 10:58
2005.01.16
Только Вы мне сможете помочь!!!


14-1103960552
Поручик
2004-12-25 10:42
2005.01.16
SATA


14-1103841075
Soft
2004-12-24 01:31
2005.01.16
Украина становится Европой.


1-1104314237
denis24
2004-12-29 12:57
2005.01.16
Поток и переменная





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский