Форум: "Основная";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];
ВнизПомогите с Thread Найти похожие ветки
← →
c0pYc@t (2002-07-17 08:34) [0]Помогите, как сделать так чтобы при вызове моей функции, например,
SetNewProcedure(s);
у меня возникал независимый процесс
и если еще раз SetNewProcedure(s); то будет следующий и т.д.
после выполнения определенных команд процесс сам помирает и все окей
ПОМОГИТЕ КТО ЧЕМ МОЖЕТ, ПОМОГИТЕ
← →
Виктор Щербаков (2002-07-17 08:47) [1]Тебе нужен процесс(Process) или поток(Thread)?
Вещи-то разные.
← →
c0pYc@t (2002-07-17 09:00) [2]>Виктор Щербаков ©
Так то мне без разницы просто хочу сделать независимые процессы, а на основе чего мне без разницы.
← →
Виктор Щербаков (2002-07-17 09:07) [3]Если ты действительно этого хочешь, то почему так странно озаглавил свой вопрос? Причем здесь Thread?
Для создания нового процесса воспользуйся функцией CreateProcess.
← →
c0pYc@t (2002-07-17 09:38) [4]>Виктор Щербаков © А как оно действует и чем отличается от Thread?
← →
Anatoly Podgoretsky (2002-07-17 09:41) [5]Создает незаввисимый процесс, а нить действует в рамках процесса.
← →
tovSuhov (2002-07-17 09:46) [6]> c0pYc@t
ИМХО, тебе нужен именно Thread (нить)...
← →
Виктор Щербаков (2002-07-17 09:50) [7]tovSuhov © (17.07.02 09:46)
В связи с этим анекдот вспомнил.
Больной врачу:
"Поскольку я больной, я оплачиваю лечение, то я и решаю от чего меня лечить".
Так что пусть c0pYc@t сам решает :)
← →
c0pYc@t (2002-07-17 09:52) [8]>Anatoly Podgoretsky ©
>tovSuhov ©
По сути моя прога получив данные пытается их обработать, а если придут еще данные, то возникнет отказ.
Я же хочу чтобы данные пришли, возник новый процесс(функция) или что еще... Но что бы небыло такого, как пришли новые данные, а старые еще не обработались и им идет отказ в обслуживании.
Посоветуйте мне как это сделать.
← →
c0pYc@t (2002-07-17 09:54) [9]>Виктор Щербаков © Лучше бы помогли чем смеяться над "больным человеком"
← →
Виктор Щербаков (2002-07-17 09:56) [10]c0pYc@t (17.07.02 09:52)
Такое можно реализовать как с помощью процессов так и с помощью потоков. Нечто вроде архитектур Classic и Super Server в СУБД Interbase. ИМХО, с помощью потоков(Threads) проще.
← →
c0pYc@t (2002-07-17 10:00) [11]>Виктор Щербаков ©
Ну так как мне это сделать?
← →
Виктор Щербаков (2002-07-17 10:03) [12]См. TThread в Delphi Help. Кстати, в комплект поставки Delphi входит демка по работе с этим классом (параллельно сортируются три массива случайных чисел).
Ну а можешь и на голом API. См. в SDK Thread Functions.
← →
tovSuhov (2002-07-17 10:09) [13]> Виктор Щербаков
...ИМХО, с помощью потоков(Threads) проще
Я об этом и говорил, просто не пояснил, с чем Вы прекрасно справились! :-))
← →
c0pYc@t (2002-07-17 10:51) [14]>tovSuhov © расскажите хоть примерно как это сделать
← →
Anatoly Podgoretsky (2002-07-17 11:01) [15]c0pYc@t (17.07.02 10:51)
Тебе же показали где лежит пример, он к тому же еще и визуальный
- "DEMOS"
Или надо его сюда скопировать, можно конечно, но остальные не поймут
← →
c0pYc@t (2002-07-17 12:22) [16]В экзампле создается 3 потока, которые описываютя отдельно друг от друга. Мне интересно, а можно ли описать одну функцию и вызывать ее одну, но с разными значениями параметров
← →
Виктор Щербаков (2002-07-17 12:27) [17]c0pYc@t (17.07.02 12:22)
Да. Можно запускать поток с одним и тем же кодом много раз.
← →
c0pYc@t (2002-07-17 12:36) [18]>Виктор Щербаков © фанкс
← →
Rooman (2002-07-22 11:39) [19]
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-24 11:59) [20]2 Rooman © а можно ли потом эти данные забрать или по завершении вызвать функцию которая их куда нуна запихнет?
← →
Skier (2002-07-24 12:02) [21]>c0pYc@t
;
> завершении вызвать функцию которая их куда нуна запихнет
OnTerminate ?
← →
c0pYc@t (2002-07-24 12:11) [22]2 Skier © нет, данные которые получились нужно сохранить допустим в массиве, а потом terminate
← →
Skier (2002-07-24 12:13) [23]>c0pYc@t
OnTerminate occurs after the thread"s Execute method has returned and before the thread is destroyed.
← →
c0pYc@t (2002-07-24 13:41) [24]2 Skier © это то понятно но как мне достать FParams как описано выше они же локальные и до окончания я не смогу их использовать, допустим у меня есть глоб массив
mas:array of TMyThrProc
masitem :array of TProcParam
...
создаем поток
mas[i] := Create(params);
он отрабатывает и как зарисать данные
????
masitem[i] := FParams
????
грубо говоря
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c