Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Для чего нужен компонет IdAntiFreeze?   Найти похожие ветки 

 
leonidus   (2004-03-15 20:40) [0]

Мастера прошу ногами не пинать, подскажите пожалуйста для чего нужен компонент из набора Indy IdAntiFreeze  и за что отвечает его свойство IdleTimeOut?
Заранее искренне благодарен.


 
leonidus   (2004-03-15 20:40) [0]

Мастера прошу ногами не пинать, подскажите пожалуйста для чего нужен компонент из набора Indy IdAntiFreeze  и за что отвечает его свойство IdleTimeOut?
Заранее искренне благодарен.


 
Verg ©   (2004-03-15 22:38) [1]

Чтобы при операциях клиентских компонентов (напр., IdTcpClient и т.п.), которые могут заблокировать работу главного потока приложения, периодически вызывать Application.ProcessMessages. Период этот и будет равен тому самому свойству IdleTimeOut.
Получается, что польз. интерфейс "как бы не замерзает" на время выполнения этой операции.


 
Verg ©   (2004-03-15 22:38) [1]

Чтобы при операциях клиентских компонентов (напр., IdTcpClient и т.п.), которые могут заблокировать работу главного потока приложения, периодически вызывать Application.ProcessMessages. Период этот и будет равен тому самому свойству IdleTimeOut.
Получается, что польз. интерфейс "как бы не замерзает" на время выполнения этой операции.


 
S@shka ©   (2004-03-15 22:39) [2]

Сокеты Indy являются блокируемыми и поэтому возможно "подвисание" твоего приложение. Чтобы от этого уйти необходимо расположить на форме данный компонент.


 
S@shka ©   (2004-03-15 22:39) [2]

Сокеты Indy являются блокируемыми и поэтому возможно "подвисание" твоего приложение. Чтобы от этого уйти необходимо расположить на форме данный компонент.


 
leonidus   (2004-03-16 21:21) [3]

Спасибо за ответы. Я в принципе так и предполагал, выставил значение IdleTimeOut в 10 но программа при закачке потоками исаользуя IdHTTP все равно иногда подвисает - окно не прорисовывается. Можно это как-то вылечить?


 
leonidus   (2004-03-16 21:21) [3]

Спасибо за ответы. Я в принципе так и предполагал, выставил значение IdleTimeOut в 10 но программа при закачке потоками исаользуя IdHTTP все равно иногда подвисает - окно не прорисовывается. Можно это как-то вылечить?


 
nikkie ©   (2004-03-16 21:36) [4]

>при закачке потоками исаользуя IdHTTP
если основной поток не загружен, то зачем тогда IdAntiFreeze?


 
nikkie ©   (2004-03-16 21:36) [4]

>при закачке потоками исаользуя IdHTTP
если основной поток не загружен, то зачем тогда IdAntiFreeze?


 
KyRo ©   (2004-03-17 03:25) [5]

Нужно ли подобное чудо использовать для WinSock ?


 
KyRo ©   (2004-03-17 03:25) [5]

Нужно ли подобное чудо использовать для WinSock ?


 
leonidus   (2004-03-17 18:29) [6]

>nikkie в каком смысле "основной поток не загружен" ? У меня программа в несколько потоков скачивает файлы из инета а потом скачанные файлы парсятся, так что думаю основной поток всегда при деле:) Но все равно подвисает, даже если я везде понатыкаю Application.ProcessMessages

>KyRo - не понял мысль, а что еще можно исользовать?


 
leonidus   (2004-03-17 18:29) [6]

>nikkie в каком смысле "основной поток не загружен" ? У меня программа в несколько потоков скачивает файлы из инета а потом скачанные файлы парсятся, так что думаю основной поток всегда при деле:) Но все равно подвисает, даже если я везде понатыкаю Application.ProcessMessages

>KyRo - не понял мысль, а что еще можно исользовать?


 
nikkie ©   (2004-03-17 18:42) [7]

>leonidus
ну так а зачем загружать основной поток? оставь его для юзера, а скачивание и обработка - в дополнительных потоках. IdAntiFreeze - это решение для ленивых, для тех, кто не хочет потоки делать...

>KyRo
нет, не нужно поскольку
1. IdAntiFreeze работает только для инди
2. в WinSock есть асинхронные сокеты, а с ними разговор другой
3. если даже использовать WinSock в блокирующем режиме, то см.1, надо использовать потоки.


 
nikkie ©   (2004-03-17 18:42) [7]

>leonidus
ну так а зачем загружать основной поток? оставь его для юзера, а скачивание и обработка - в дополнительных потоках. IdAntiFreeze - это решение для ленивых, для тех, кто не хочет потоки делать...

>KyRo
нет, не нужно поскольку
1. IdAntiFreeze работает только для инди
2. в WinSock есть асинхронные сокеты, а с ними разговор другой
3. если даже использовать WinSock в блокирующем режиме, то см.1, надо использовать потоки.


 
leonidus   (2004-03-18 18:56) [8]

Так я и использую потоки а IdAntiFreeze использую именно потому что в потоках работают именно компоненты Инди а именно IdHTTP. Может я и кривовато делаю, но я просто положил на форму 4 компонента IdHTTP для каждого организую свой поток и по таймеру слежу как только поток отработал передаю ему очередной URL из очереди. Но приложение периодически подвисает, что я делаю не так?


 
leonidus   (2004-03-18 18:56) [8]

Так я и использую потоки а IdAntiFreeze использую именно потому что в потоках работают именно компоненты Инди а именно IdHTTP. Может я и кривовато делаю, но я просто положил на форму 4 компонента IdHTTP для каждого организую свой поток и по таймеру слежу как только поток отработал передаю ему очередной URL из очереди. Но приложение периодически подвисает, что я делаю не так?


 
nikkie ©   (2004-03-18 20:02) [9]

>Но приложение периодически подвисает, что я делаю не так?
кто ж тебя знает... покажи код - как создаешь потоки, как проверяешь, что "поток отработал", как "передаешь ему очередной URL".


 
nikkie ©   (2004-03-18 20:02) [9]

>Но приложение периодически подвисает, что я делаю не так?
кто ж тебя знает... покажи код - как создаешь потоки, как проверяешь, что "поток отработал", как "передаешь ему очередной URL".


 
Digitman ©   (2004-03-19 09:10) [10]


> что я делаю не так?


наверно, метод synchronize() используешь там, где он как раз не нужен


 
Digitman ©   (2004-03-19 09:10) [10]


> что я делаю не так?


наверно, метод synchronize() используешь там, где он как раз не нужен


 
leonidus   (2004-03-19 23:03) [11]

Может быть, потому что я все делал методом научного втыка. А как надо правильно использовать synchronize?


 
leonidus   (2004-03-19 23:03) [11]

Может быть, потому что я все делал методом научного втыка. А как надо правильно использовать synchronize?



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.033 c
1-1082730530
windows
2004-04-23 18:28
2004.05.09
как edit у послать сообщение что его редактируют (Edit1Change)


1-1082634117
k@rt
2004-04-22 15:41
2004.05.09
Окно в потоке


1-1082466625
ss300
2004-04-20 17:10
2004.05.09
Переход от одного поля на другое нажатием на Enter


6-1079604130
Павел
2004-03-18 13:02
2004.05.09
Есть ли компонент перевода в html-код


7-1079529307
Dastin
2004-03-17 16:15
2004.05.09
Определение буквы CD





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский