Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2014, 12:14   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Из потоков нужно повыкидывать все обращения к Form1.
Если есть какие-то данные, которые нужно передавать в поток то передавай их через некоторые поля потока.
Form1.MemoSave.lines.Add(link); тоже выкинуть из всех потоков. Лучше потом по завершению работы сохранять или по закрытию формы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2014, 12:29   #12
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Из потоков нужно повыкидывать все обращения к Form1.
Если есть какие-то данные, которые нужно передавать в поток то передавай их через некоторые поля потока.
Form1.MemoSave.lines.Add(link); тоже выкинуть из всех потоков. Лучше потом по завершению работы сохранять или по закрытию формы.
Да погоди ты про потоки. Сначала лучше сам поиск допилить, а уже потом делать его многопоточность. Но ты прав, конечно. Выпилить оттуда VCL необходимо. И крит. секция нафиг не нужна.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.10.2014, 13:02   #13
VitProff
Пользователь
 
Регистрация: 22.11.2012
Сообщений: 12
По умолчанию

Переписал проект под Indy в один поток на найденному в сети примеру

Код:
procedure TPotok.Execute;
begin
  for i:=0 to Form1.sMemo1.Lines.Count-1 do
  begin
    try
      site:=Form1.sMemo1.Lines.Strings[i];
      html:=HTTP.Get(site);
    except
    end;
    if Pos('slovo', html)<>0 then
     begin
       rez:=1;
       Synchronize(Sync);
     end
    else
      begin
        rez:=0;
        Synchronize(Sync);
      end;

    if Potok.Terminated then break;
  end;
  HTTP.Free;
end;

procedure TPotok.Sync;
begin
if (rez=1) then
  begin
    Form1.sMemo2.Lines.Add(site);
  end;
if (rez=0) then
  begin
    Form1.Label3.Caption:=IntToStr(StrtoInt(Form1.Label3.Caption)+1);
  end;

end;
Когда я через свою программу проверяю найденные в XLink Checker ссылки то у меня они также найденные, тоже самое когда проверяю не найденные в XLink Checker то у меня они также не найденные.
Но когда я проверяю весь список ссылок то у меня почему-то выдает много найденных ссылок, несколько раз проверял. Примерно 420-430 из 500 при том что XLink Checker находит примерно 200-210 из 500.

Почему так происходит не пойму.
VitProff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на наличие процесса NewBoy Общие вопросы C/C++ 5 16.07.2012 20:56
Проверка на наличие файла Vladya Общие вопросы Delphi 7 10.10.2009 01:26
Проверка на наличие в массиве istoe Microsoft Office Excel 8 26.08.2009 11:55
Проверка на наличие файла Demetrius Помощь студентам 12 28.07.2009 00:27
Проверка на наличие таблицы в БД Ramires БД в Delphi 3 18.12.2008 08:59