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

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

Помогите с Thread [D6, Win95/98]


Страницы:   1 2

c0pYc@t ©   (2002-07-17 08:34:00) 

Помогите, как сделать так чтобы при вызове моей функции, например,

SetNewProcedure(s);
у меня возникал независимый процесс
и если еще раз SetNewProcedure(s); то будет следующий и т.д.
после выполнения определенных команд процесс сам помирает и все окей

ПОМОГИТЕ КТО ЧЕМ МОЖЕТ, ПОМОГИТЕ


c0pYc@t   (2002-07-24 13:41:00) [1]

2 Skier © это то понятно но как мне достать FParams как описано выше они же локальные и до окончания я не смогу их использовать, допустим у меня есть глоб массив

mas:array of TMyThrProc
masitem :array of TProcParam
...
создаем поток

mas[i] := Create(params);

он отрабатывает и как зарисать данные
????
masitem[i] := FParams
????
грубо говоря


Skier   (2002-07-24 12:13:00) [2]

>c0pYc@t
OnTerminate occurs after the thread"s Execute method has returned and before the thread is destroyed.


c0pYc@t   (2002-07-24 12:11:00) [3]

2 Skier © нет, данные которые получились нужно сохранить допустим в массиве, а потом terminate


Skier   (2002-07-24 12:02:00) [4]

>c0pYc@t

;
> завершении вызвать функцию которая их куда нуна запихнет



OnTerminate ?


c0pYc@t   (2002-07-24 11:59:00) [5]

2 Rooman © а можно ли потом эти данные забрать или по завершении вызвать функцию которая их куда нуна запихнет?


Rooman   (2002-07-22 11:39:00) [6]

type
TProcParams=record
...
end;

TMyThrProc=class(TThread)
private
FParams:TProcParams;
protected
procedure Execute;override;
public
constructor Create(params:TProcParams);
end;

implementation

constructor TMyThrProc.Create(params:TProcParams);
begin
inherited Create(true);
FreeOnTerminate:=true;
FParams:=params;
resume;
end;

procedure TMyThrProc.Execute;
begin
// входные параметры лежат в поле FParams:TProcParams
...
// по выходу из Execute объект сам себя уничтожает
end;


c0pYc@t   (2002-07-17 12:36:00) [7]

>Виктор Щербаков © фанкс


Виктор Щербаков   (2002-07-17 12:27:00) [8]

c0pYc@t (17.07.02 12:22)
Да. Можно запускать поток с одним и тем же кодом много раз.


c0pYc@t   (2002-07-17 12:22:00) [9]

В экзампле создается 3 потока, которые описываютя отдельно друг от друга. Мне интересно, а можно ли описать одну функцию и вызывать ее одну, но с разными значениями параметров


Anatoly Podgoretsky   (2002-07-17 11:01:00) [10]

c0pYc@t (17.07.02 10:51)
Тебе же показали где лежит пример, он к тому же еще и визуальный
- "DEMOS"
Или надо его сюда скопировать, можно конечно, но остальные не поймут


c0pYc@t   (2002-07-17 10:51:00) [11]

>tovSuhov © расскажите хоть примерно как это сделать


tovSuhov   (2002-07-17 10:09:00) [12]

> Виктор Щербаков
...ИМХО, с помощью потоков(Threads) проще

Я об этом и говорил, просто не пояснил, с чем Вы прекрасно справились! :-))


Виктор Щербаков   (2002-07-17 10:03:00) [13]

См. TThread в Delphi Help. Кстати, в комплект поставки Delphi входит демка по работе с этим классом (параллельно сортируются три массива случайных чисел).
Ну а можешь и на голом API. См. в SDK Thread Functions.


c0pYc@t   (2002-07-17 10:00:00) [14]

>Виктор Щербаков ©
Ну так как мне это сделать?


Виктор Щербаков   (2002-07-17 09:56:00) [15]

c0pYc@t (17.07.02 09:52)
Такое можно реализовать как с помощью процессов так и с помощью потоков. Нечто вроде архитектур Classic и Super Server в СУБД Interbase. ИМХО, с помощью потоков(Threads) проще.


c0pYc@t   (2002-07-17 09:54:00) [16]

>Виктор Щербаков © Лучше бы помогли чем смеяться над "больным человеком"


c0pYc@t   (2002-07-17 09:52:00) [17]

>Anatoly Podgoretsky ©
>tovSuhov ©
По сути моя прога получив данные пытается их обработать, а если придут еще данные, то возникнет отказ.
Я же хочу чтобы данные пришли, возник новый процесс(функция) или что еще... Но что бы небыло такого, как пришли новые данные, а старые еще не обработались и им идет отказ в обслуживании.
Посоветуйте мне как это сделать.


Виктор Щербаков   (2002-07-17 09:50:00) [18]

tovSuhov © (17.07.02 09:46)
В связи с этим анекдот вспомнил.
Больной врачу:
"Поскольку я больной, я оплачиваю лечение, то я и решаю от чего меня лечить".

Так что пусть c0pYc@t сам решает :)


tovSuhov   (2002-07-17 09:46:00) [19]

> c0pYc@t
ИМХО, тебе нужен именно Thread (нить)...


Anatoly Podgoretsky   (2002-07-17 09:41:00) [20]

Создает незаввисимый процесс, а нить действует в рамках процесса.


Страницы:   1 2

Наверх

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