| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Многопоточность |
| Автор: ppc 30.9.2007, 14:07 |
| Здравствуйте. Столкнулся я недавно с тем, что нужно писать многопоточною программу. Почитал про класс TThread, создал несколько потоков паралельно, попробовал простые примеры для ознакомления, но проблема в том, что я не знаю как создавать потоки динамически. Объясню. Я хочу, чтоб в программе находу можно было указывать количество потоков, вот это проблема. Каждый поток выполняет одну и туже процедуру. procedure TMyThread1.DoWork; begin myprocedure; end; Расскажите, пожалуйста, как создавать потоки динамически? |
| Автор: Coder 30.9.2007, 15:29 | ||||
Так ты их так уже и создаешь. Попробуй так (создаст 10 потоков):
|
| Автор: BaD_SeCt0R 30.9.2007, 18:41 |
| Есть у меня подозрение, что эта тема не для сетей... |
| Автор: Sanchezzz 30.9.2007, 19:31 |
| BaD_SeCt0R, может и для сетей Indy ведь с ним можно работать с разными потоками защищенными и нет. Нужно каждому заглянуть в глубины инди. |
| Автор: Sanchezzz 30.9.2007, 21:04 |
| Нам тогда только осталось дождаться автора вопроса и пусть судят модеры раздела чея тема какого раздела мы только участники с возможностью отвечать на вопрос. изменяюсь за |
| Автор: BaD_SeCt0R 30.9.2007, 21:23 |
| ppc, советую знакомство с потоками начинать с http://forum.vingrad.ru/forum/topic-60076/view-all.html. |
| Автор: ppc 1.10.2007, 01:00 |
| thread_n := 10; for i:=1 to thread_n do CreateThread(а тут что?); можно поподробнее, т.к. я каждый поток объявляю TMyThread1 = class(TThread) private { Private declarations } protected procedure DoWork; procedure Execute; override; end; |
| Автор: Coder 1.10.2007, 06:57 | ||
|
| Автор: Felan 1.10.2007, 08:00 | ||||||
Делаешь класс потока, какой тебе надо. Например так:
Реализация примерно такая:
Вот... Ну и создаешь экземпляры этого класса сколько тебе надо примерно так:
Потом, что бы запустить или остановить вызываешь методы start и stop. |