Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.05.2012, 11:29
Pcrepair
 
Сообщения: n/a
По умолчанию Application.ProcessMessages и загрузка процессора

Добрый день
Замечено, что в момент загрузки страницы ПРОЦ грузит до 50% видимо в первом Application.ProcessMessages

Код:
try
        Wbbr.Navigate(UrlSearch, Flags, TargetFrameName, PostData, Headers);
          repeat
            Application.ProcessMessages; (*видимо тут грузит проц до 50%*)
          until Wbbr.ReadyState >= READYSTATE_COMPLETE;
          if Wbbr.Document <> nil then
          HtmlCodeData := AnsiLowerCase(
          (Wbbr.Document as iHTMLDocument2).body.innerhtml);
          Application.ProcessMessages; (*тут вроде бы и не надо?*)
      except
          CodeSite.EnterMethod( Self, 'Timer' );
          CodeSite.SendError('TWebBrowser failed'); (*бравузер здох*)
          CodeSite.ExitMethod( Self, 'Timer' );
      end;



Вопрос: чем можно заменить Application.ProcessMessages в коде, так чтобы гарантировать загрузку страницы перед выполнением последующих инструкций
Ответить с цитированием
  #2  
Старый 27.05.2012, 12:01
wendstor wendstor вне форума
Прохожий
 
Регистрация: 13.10.2010
Сообщения: 30
Репутация: 11
По умолчанию

Вместо Application попробуй Класс TThread, вот ссылка.
а грузить проц будет так как идёт бработка html кода и построение страницы.
Ответить с цитированием
  #3  
Старый 27.05.2012, 12:16
Pcrepair
 
Сообщения: n/a
По умолчанию

потоки это хорошо, но не по теме

уже насоветовали

Код:
repeat
Sleep (1);
Application.ProcessMessages;
надо было просто приложить АПМ к чему то
теперь не более 7% загрузки проца
Ответить с цитированием
  #4  
Старый 27.05.2012, 15:40
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Sleep можно и больше 1 миллисекунды сделать. Загрузка снизится почти до нуля.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 27.05.2012, 19:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

а чем события не устраивают?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #6  
Старый 28.05.2012, 16:25
Pcrepair
 
Сообщения: n/a
По умолчанию

OnDownloadComplete и прочие не походят, так как нет гарантии что они возникают после закачки и обработки страницы

код в топике гарантирует, в том числе и в ситуации с низкой скоростью закачки, правильную обработку кода(ДОМ). это проверено
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:06.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025