Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.005 c
1-13671
иван
2002-07-23 17:54
2002.08.05
Как сделать программу без форм?


1-13592
Дядя Будда
2002-07-24 13:49
2002.08.05
Как в Dataset e DBGrid a позиционироваться на запись...


1-13632
dimanew
2002-07-23 06:49
2002.08.05
Как в DBGride сделать подсветку одной строки например на 2 сек?


1-13585
Роман М.
2002-07-22 19:43
2002.08.05
Поместить приложение поверх все окон


14-13801
Dimich1978
2002-07-08 08:46
2002.08.05
Создадим или не создадим вот в чем вопрос.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский