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

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

TIDHTTPserver в каком потоке выполняется IdHTTPServer1CommandGet [D6, WinXP]


redlord ©   (2007-04-12 22:35:00) 

всем привет.
народ подскажите в каком потоке выполняется
проседура IdHTTPServer1CommandGet
компонента Tidhttpserver ?

для каждого подключившегося клиента в своем потоке
или в потоке главной формы

тобиш нушно-ли принимать дополнительные
меры для сихронизации данных в выше упомянутой
процедуре .
не получится-ли что два потока одновременно
пишут данные в массив(глобально объявленный ), а третий поток, из этого потока, читает вместо нормальных данных
коктель который устроили там первых два потока ?


umbra   (2007-04-16 19:16:00) [1]


> народ подскажите в каком потоке выполняется
> проседура IdHTTPServer1CommandGet
> компонента Tidhttpserver

в контексте сессии с клиентом, давшим запрос. Т.е. не в основном потоке.


> GetCurrentThread()

а что вы хотите, чтобы эта функция Вам дала? Может Вы имели в виду GetCurrentThreadId ?


redlord   (2007-04-16 18:20:00) [2]

в смысле не то и не там ?

в обработчике нажатия кнопки  и в IdHTTPServer1CommandGet
listbox1.Items.add('thrd : '+inttostr(GetCurrentThread));
выдает одно и тоже значение

p.s.  я ни кому ничего не пытаюсь доказать, я хочу понять .


Reindeer Moss Eater   (2007-04-16 17:43:00) [3]

GetCurrentThread() показывает что все обрабатывается в потоке формы
следовательно поочереди


Не то показывает и не там.
Никакой "поочереди" нет.


redlord   (2007-04-16 17:37:00) [4]

GetCurrentThread() показывает что все обрабатывается в потоке формы
следовательно поочереди
но глобальная переменная (на уровне проекта)
говорит об обратном.
тобиш ниже приведенный код проседуры
IdHTTPServer1CommandGet  пищит, если к серверу подключается несколько клиентов.
подскажите почему так происходит ?

if flag = true then beep;
flag:=true;
listbox1.Items.add('thrd : '+inttostr(GetCurrentThread));

sleep(500);
flag:=false;


redlord   (2007-04-12 23:23:00) [5]

все генеальное  просто ))))

спасибо


Dmitrij_K   (2007-04-12 23:16:00) [6]

А самому проверить?
GetCurrentThread()


Наверх

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