![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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()