в многопоточных компонентах Indy есть нумерация потоков?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
jsa
постоялец
Сообщения: 295
Зарегистрирован: 28.11.2017 12:46:04

в многопоточных компонентах Indy есть нумерация потоков?

Сообщение jsa »

В многопоточных компонентах Indy есть нумерация потоков?

Вот так я могу получить кол-во потоков в момент времени
Form1.IdHTTPServer1.Contexts.Count

Попробовал найти в текущем потоке хоть какой-то намек на Номер или иной идентификатор, т.к. не смог нагуглить, то наугад взял
AContext.Connection.IOHandler.Port ;
AContext.Connection.Tag ;
AContext.Connection.DesignInfo;

В обработке
Form1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);

Всё не то, все =0
Или какой-то из них подходит, просто нумерация с 0 начинается.
сэмулировать несколько одновременных запросов, не получается, чтобы понять изменится ли какое-то из значений.

Мне нужна какая-то зацепка, какой-то идентификатор, чтобы выводить в лог.
Имеется такой?
DedFrend
постоялец
Сообщения: 157
Зарегистрирован: 25.11.2018 11:21:50

Сообщение DedFrend »

А почему вы думаете, что Indy использует многопоточность? Я ее иногда пользовал, но многопоточности не замечал.
Аватара пользователя
runewalsh
энтузиаст
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Сообщение runewalsh »

Если просто для лога (а не, например, явно выполнить работу в N потоков и иметь в каждом точный индекс от 0 до N−1), то используй System.GetThreadID.
jsa
постоялец
Сообщения: 295
Зарегистрирован: 28.11.2017 12:46:04

Сообщение jsa »

DedFrend писал(а):А почему вы думаете, что Indy использует многопоточность? Я ее иногда пользовал, но многопоточности не замечал.

У вас есть инструмент которым можно нагрузить запросами сервер на основе Indy компонент, чтобы заметить потоки?
Или как именно вы пытались заметить многопоточность?
Конкретно меня интересующий компонент IdHTTPServer многопоточный.

Добавлено спустя 12 минут 18 секунд:
runewalsh писал(а):... то используй System.GetThreadID.


Спс. получается это номер потока во всей системе, годится чтобы связывать между собой в логах отметки одного и того же потока.
Это хорошо.
А собственную нумерацию Indy не ведет?
Ответить