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

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

Пинг в несколько потоков [D7, WinXP]


Страницы:   1 2

Квэнди ©   (2006-12-08 15:21:00) 

Здравствуйте.
Вопроса у меня 2:
1. (немного не в эту тему) Есть объект TIdIcmpClient.
   Можно ли одновременно в нескольких потоках запускать его функцию Ping ? Чем это грозит ?
2. Есть паралльельный поток, который, собственно, и будет запускать ping, затем синхронизируясь по получению ответа. Проблема в следующем:
кол-во потоков не известно, его будет вводить пользователь. Каким образом можно реализовать создание и запуск одновременно неизвестного в disign-time кол-ва потоков ?


Anatoly Podgoretsky   (2006-12-08 15:48:00) [21]

> Квэнди  (08.12.2006 15:31:05)  [5]

Не знаю - это динамика, создавай по мере необходимости.


Квэнди   (2006-12-08 15:46:00) [22]


> Неверно.

А как тогда ? экземпляр объекта TIdIcmpClient один, ведь так ? и во всех одновременных поток используется один и тот же экземпляр...


Рамиль   (2006-12-08 15:44:00) [23]


> выполнит только один, и ни один другой его не выполнит,
> пока первый не получит reply , верно ?

Неверно.


Квэнди   (2006-12-08 15:42:00) [24]


> [1] и необязательно динамический, можно статический до n
> и не давать ввести больше n потоков.

Да это понятно, но не в этом основной вопрос )


Рамиль   (2006-12-08 15:40:00) [25]


> Имеется ввиду что я не знаю кол- ва потоков. Соответственно
> единственно верный, имхо вариант это динамический массив
> потоков , так ?

[1] и необязательно динамический, можно статический до n и не давать ввести больше n потоков.


Квэнди   (2006-12-08 15:31:00) [26]


> 1а. можно
> 1б ничем не грозит, кроме паралельности

Вот вопрос как раз в параллельности выполнения, т.е. в одну единицу времени вне зависимости от кол-ва потоко, пытающихся выполнить ping, выполнит только один, и ни один другой его не выполнит, пока первый не получит reply , верно ?

>
> 2. как ты создаешь потоки в дизайн тайм, очень интересно,
>  покажи, тогда поможем с рантайм.

Неверно выразился.
Имеется ввиду что я не знаю кол- ва потоков. Соответственно единственно верный, имхо вариант это динамический массив потоков , так ?


Рамиль   (2006-12-08 15:29:00) [27]


> Anatoly Podgoretsky ©   (08.12.06 15:26) [2]

Телепортатор подсказывает, что пытается так
var
 th1, th2, th3 ... :TThread; :)
А var в runtime не перепишешь.


Рамиль   (2006-12-08 15:27:00) [28]


> может он сам не умеет потоки плодить?

> может он сам умеет потоки плодить?


Рамиль   (2006-12-08 15:26:00) [29]

1. Если правильно разрулить, то ничем.
2. Непонятно зачем еще один поток, который будет запускать другие потоки? Чем из основного не нравится? А насчет количества
PingTreads: array of TThread или TString(Object)List

Хотя я не пользовался TIdIcmpClient, может он сам не умеет потоки плодить?


Anatoly Podgoretsky   (2006-12-08 15:26:00) [30]

> Квэнди  (08.12.2006 15:21:00)  [0]

1а. можно
1б ничем не грозит, кроме паралельности

2. как ты создаешь потоки в дизайн тайм, очень интересно, покажи, тогда поможем с рантайм.


Страницы:   1 2

Наверх

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