Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#31: 2008-03-18 12:39:30 ЛС | профиль | цитата
tsdima писал(а):
но внутри TCP_ServerEx запускать новые Thread-ы (что происходит при Wait=False) не надо

Вот расскажи, почему не надо
((а то ведь опять получается, что ты даешь челу рыбу, а не удочку))
Я это понимаю так, что в элементе просто нет защиты от "перегрузки"
Собственно, даже думаю, что если таковая появятся, то жизнь легче не станет ни на минуту
Другого-то как-то и в голову не приходит

Но тогда это именно "наложения"
И что тогда с такой "логикой":
Byuik писал(а):
Он создаёт на каждое подключение новую схему а значит и новый HTTP_GET




Byuik писал(а):
В мульти элементах

И что
Не царское это дело, что-ли
Типа я состряпал, а отлаживать (что собственно и есть приведение своего понимания происходящего, с реальным положением вещей) пускай дядя будет

А если не работает, значит элемент глючный
Или голова все-таки
карма: 9

0
Ответов: 893
Рейтинг: 18
#32: 2008-03-18 12:39:22 ЛС | профиль | цитата
tsdima писал(а):
"свойство Wait компонента HTTP_Get". Не пробовал Wait=True?

Пробовал тоже самое за исключением того что приложение попросту виснет .
tsdima писал(а):
Я понимаю, что асинхронное выполнение запросов это круто, но внутри TCP_ServerEx запускать новые Thread-ы (что происходит при Wait=False) не надо.

Дык по идее на каждую картинку приходится по одному HTTP_GET по логике вещей даже схема сервера не уничтожается до тех пор пока HTTP_GET не докачает картинку даже при методе Wait=False а после закрывается.
Наблюдал лично в процессах следя за размером памяти , даже Месенжер ставил на окончание закачки и пробовал в INI записать закачки закачивало всегда до конца даже при EROR естли не нажать на окне ошибки ранее кнопку OK.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 9906
Рейтинг: 351
#33: 2008-03-18 12:47:25 ЛС | профиль | цитата
tsdima, а чисто для интереса, у тебя TCP_Connection.onRead - синхронизировано, или нет
карма: 9

0
Ответов: 2125
Рейтинг: 159
#34: 2008-03-18 14:04:31 ЛС | профиль | цитата
Какие-то вопросы ты, Galkov, задаёшь странные.
Ответить могу только так: если у тебя TCP_Client.onRead синхронизировано, то и у меня TCP_Connection.onRead - синхронизировано

------------ Дoбавленo:

Ну хорошо. Ну вылетает вышеприведённая схема. Ну допустим при вызове th.Synchronize( ShowInfo ) из-за того, что th левый. Извечный вопрос: кто виноват и что делать? Galkov, а?
карма: 1

0
Ответов: 9906
Рейтинг: 351
#35: 2008-03-18 14:08:10 ЛС | профиль | цитата
Ну хорошо, можем ли мы утверждать, что ID потока для события из TCP_Client.onRead совпадает с ID основного потока проги (того, который делает ##open)

Или фиг его знает
карма: 9

0
Ответов: 2125
Рейтинг: 159
#36: 2008-03-18 14:14:18 ЛС | профиль | цитата
Galkov писал(а):
Вот расскажи, почему не надо

А как должен работать динамический мультик, когда его убивают и при этом внутри него живёт другой Thread? Кто о бедном Thread позаботится?
------------ Дoбавленo:

Вот ты щас скажешь - деструктор! А и где он такой у HTTP_Get?
------------ Дoбавленo:

Опять, понимаете ли, динамическая нечистоплотность
карма: 1

0
Ответов: 9906
Рейтинг: 351
#37: 2008-03-18 14:38:48 ЛС | профиль | цитата
tsdima писал(а):
из-за того, что th левый

Не давать его делать левым.
Насколько я понимаю, такое бывает при Wait=false, от этого

#pas
th := NewThread;
- без закрытия предыдущего Называется: не успеешь выполнить одно задание, как тут же не успеваешь выполнить второе...
А проверять - не задача элемента, ИМХО
Потому-что, проверивши, чего-то надо делать, а чего - элементу неведомо
Да и не должно быть ведомо...
Это задача схемы

Вообще-то мне думается, что стиль "для лохов" - порочный.
Не фиг этому потоку в элементе вообще делать
Он нужен тому, кто не хочет ничего знать про "параллельное программирование", а выполнялось чтобы - обязательно "параллельно"



------------ Дoбавленo:

tsdima, то, чего ты говоришь, имеет смысл при Wait=false
Или ты не особо доверяешь сообщению:
Byuik писал(а):
Пробовал тоже самое за исключением того что приложение попросту виснет

Нет там вроде никаких потоков.
Собственно, я потому про асинхронность и спрашивал...
------------ Дoбавленo:

tsdima писал(а):
А как должен работать динамический мультик, когда его убивают и при этом внутри него живёт другой Thread?

А если нооборот: А как это его начинают убивать, когда внутри у него живет другой Thread?
Кто посмел?

карма: 9

0
Ответов: 2125
Рейтинг: 159
#38: 2008-03-18 14:44:44 ЛС | профиль | цитата
Galkov писал(а):
Или ты не особо доверяешь сообщению:

Не доверяю. У меня с Wait=True работает без проблем.
------------ Дoбавленo:

Galkov писал(а):
Кто посмел?

Сокет закрылся, вот и посмел.
карма: 1

0
Ответов: 9906
Рейтинг: 351
#39: 2008-03-18 15:25:00 ЛС | профиль | цитата
Это чего же получается: после onRead никто ничего не обещал
------------ Дoбавленo:

И по onDisconnect ничего нельзя предпринять
карма: 9

0
Ответов: 2125
Рейтинг: 159
#40: 2008-03-18 16:28:34 ЛС | профиль | цитата
Ну почему-же. У нашего TSocket на этот счёт свой "synchronize"
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#41: 2008-03-18 17:20:38 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-05-21 04:11:39
карма: 0

0
Ответов: 2125
Рейтинг: 159
#42: 2008-03-18 17:30:52 ЛС | профиль | цитата
А что, до сих пор не сделал?
Можно так:
code_8655.txt
карма: 1

0
файлы: 1code_8655.txt [547B] [581]
Ответов: 499
Рейтинг: 1
#43: 2008-03-18 18:02:05 ЛС | профиль | цитата
tsdima писал(а):
Не пробовал Wait=True?

я попробовал. теперь не падает во время работы, но при закрытии та же ошибка 216.
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#44: 2008-03-18 19:52:36 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-05-21 04:11:39
карма: 0

0
Ответов: 893
Рейтинг: 18
#45: 2008-03-19 00:07:38 ЛС | профиль | цитата
tsdima, а как насчёт моего вопроса , пришли к какому заключению ?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)