![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| diavo1os |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.8.2007 Репутация: нет Всего: нет |
Добрый день! подскажите пожалуйста...Как можно закачать файл из интернета без зависания...
Вот так я качаю файл..Но во время скачки у меня форма просто зависает а потом псоле закачки отвисает...и я ничего сделать не могу..возможно ли без зависания скачать ? Заранее спс... Это сообщение отредактировал(а) diavo1os - 5.8.2007, 12:39 |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: нет Всего: 111 |
diavo1os
Слушай, ну на мастерах тебе же вроде подсказали. Или я ошибаюсь? Добавлено через 1 минуту и 40 секунд Дубль: http://www.delphimaster.ru/cgi-bin/forum.p...218865&n=18 Добавлено через 5 минут и 25 секунд Наверняка повторюсь... Запусти функцию в отдельном потоке или используй последний параметр у URLDownloadToFile. Это тот, в котором ты передаёшь nil. |
|||
|
||||
| diavo1os |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.8.2007 Репутация: нет Всего: нет |
я незнаю я там пять раз просил что в теме мне по теме отписывались..только вскольз.поэтмоу и обратился сюда..Пример покажи пожалуйста...я незнаю посл параметр у URLDownloadToFile и про поток я спрашивал кокретнее (Thread). и все молчат...а в интернете литературы на эту тему мало...можешь хоть продемонстрирвоать?:
|
|||
|
||||
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: нет Всего: 6 |
Про потоки же целая статья написана. Разбирайся ... не хочу
Тебе же дали направление....
Разбираешь предложение по словам, выделяешь главные, а дальше ... поиск. Удачи -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 2 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: нет Всего: 111 |
Alexeis
Блин, ну чё творишь, чё творишь? |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: нет Всего: 111 |
Alexeis, ну не зря же я начал пальцы ломать на ноуте и писать экзампл. А ты меня опередил. Пришлось через лень дописывать
Пример:
Для примера специально взял большой файл http://torrent.borland.com/turbodelphi_en.iso.zip. Это сообщение отредактировал(а) Yanis - 5.8.2007, 14:20 |
|||
|
||||
| diavo1os |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.8.2007 Репутация: нет Всего: нет |
спс большое всем..осбенно Yanis...разобрался....
|
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
Yanis, а что от TObject, а не от TInterfacedObject, как Alexeis? ихо так нагляднее) нет лишнего кода
-------------------- There are always someone smarter than you... |
|||
|
||||
| Yanis |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: нет Всего: 111 |
Ну да, так разумнее. Не внимательный потому что, вот и ляпаю Добавлено @ 16:40 Реализация класса TBindStatusCallback:
Отдельное спасибо MetalFan за пинок. Это сообщение отредактировал(а) Yanis - 5.8.2007, 16:40 |
||||||
|
|||||||
| MikeLevinN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 6.9.2007 Репутация: нет Всего: нет |
Всем привет.
Использовал один из выше приведеных способов в своем приложении, что бы скачать 20Кб. Но ситуация такая, что мне кажется, что где-то память не освобождается. А именно, до начала вызова этого кода, моя программа расходует около четырех Мб, после же, начинает расходовать около шести и даже более. Я было думал на свои кривые руки с разборкой скачанного файла, но попробовал просто вычеркнуть этап скачивания, подменив "скачанный" файл, файлом на диске, в таком случае с расходом памяти все нормально, т.е. это не в моем алгоритме косяк. Сам код этот:
Что тут не так, куда мне копать? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 2 Всего: 459 |
Это еще ни о чем не говорит. Утечки не проверяют по показаниям таск менеджера. Менеджер памяти делфи редко отдает память винде даже если удалены все объекты, потому что резервирует про запас. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| MikeLevinN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 6.9.2007 Репутация: нет Всего: нет |
Хмм.. ну я даже не знаю, что и сказать, так просто кушать два метра памяти, на моём, хоть и мальеньком опыте не видел никогда. Просто не понимаю, как такое получается, что именно в данном случае влияет на это?
Т.е. ведь если я создам обычный класс, он у меня отожрет памяти пусть тоже два метра, а потом его удалю, - то расход памяти, судя по task manager сокращается. А тут такое дело, может есть способы все же как-то воздействовать на это, дабы избежать этих лишних расходов? Просто успокоиться не могу ни как. Или не обращать на это внимание? И ещё вопрос в тему, как в данном коде прописать соединение через прокси? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 2 Всего: 459 |
Нужно воспользоваться модулем для проверки утечек памяти. Что-то такое тут проскакивало на форуме, по завершению создается лог где написано чего и где не было освобождено. Без этого даже и браться не стоит. Кроме того приведенный пример почти пустой, ошибка может быть где угодно. Преведеные доводы не убедительны.
Добавлено через 3 минуты и 8 секунд Модуль называется MemCheck.pas Он не стандартный но найти несложно. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| MikeLevinN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 6.9.2007 Репутация: нет Всего: нет |
Да я проверяю на наличие утечек через FastMM4, но все нормально, никаких утечек не зафиксировано.
Я ещё просто взял чистый новый проект, прикрутил код и запустил и опять подобная картина, расход памяти возрастает и ниже не становится. Я не понимаю в чем дело. Код в тестовом проекте такой же как и в примере, я добавил лишь:
Это нормальное явление, или как это объяснить? |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |