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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2014, 10:31   #1
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию Проблема с потоками

Проблема такого, например выставляем 100 поток, сначала все работает нормально быстро, и должно, но после примерно часа работы потоки начинают жутко медленно работать, программа становится как одна поток. В чем может быть проблема?
UKRtortik вне форума Ответить с цитированием
Старый 01.03.2014, 10:40   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ошибка в 17 строке
eval вне форума Ответить с цитированием
Старый 01.03.2014, 10:42   #3
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
ошибка в 17 строке
а мне кажется в 21 строке ошибка
Winexcel вне форума Ответить с цитированием
Старый 01.03.2014, 10:46   #4
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Код:
procedure th.Execute;
var
test:TStringList;
begin
  while work do begin
    CS.Enter;
    Inc(Acc);
    if Acc<Accounts.Count then CurAcc:=Acc else Work:=false;
    Inc(Proxy);
    if Proxy=Proxys.Count then Proxy:=0; CurProxy:=Proxy;
    CS.Leave;
    if work then begin
      if pos(':', Accounts[CurAcc])<>0 then begin
        login:=Copy(Accounts[CurAcc], 1, Pos(':',Accounts[CurAcc])-1);
        pass:=Copy(Accounts[CurAcc], Pos(':', Accounts[CurAcc])+1, Length(Accounts[CurAcc]));
      end else begin
        login:=Copy(Accounts[CurAcc], 1, Pos(';',Accounts[CurAcc])-1);
        pass:=Copy(Accounts[CurAcc], Pos(';', Accounts[CurAcc])+1, Length(Accounts[CurAcc]));
      end;
      http:=thttpsend.create;
      if Form1.sRadioButton1.Checked=true then begin
        http.ProxyHost:=Copy(Proxys[CurProxy],1,Pos(':',Proxys[CurProxy])-1);
        http.ProxyPort:=Copy(Proxys[CurProxy],Pos(':',Proxys[CurProxy])+1,Length(Proxys[CurProxy]));
      end;
      if Form1.sRadioButton2.Checked=true then begin
        http.Sock.SocksIP:=Copy(Proxys[CurProxy],1,Pos(':',Proxys[CurProxy])-1);
        http.Sock.SocksPort:=Copy(Proxys[CurProxy],Pos(':',Proxys[CurProxy])+1,Length(Proxys[CurProxy]));
      end;
      http.Timeout:=Form1.sSpinEdit2.Value*1000;
      http.UserAgent:=GetRandomUserAgent;
      http.Document.Clear;
      http.Headers.Clear;
if http.HTTPMethod('GET', 'http://') then begin
    html:=TStringList.Create;
    html.LoadFromStream(http.Document);
      if pos('', html.Text)<>0 then begin
          rez:=1;
          end else begin
            rez:=-1;
          end;
end;
      end else rez:=0;
      http.Free;
      Synchronize(Sync);
    end;
  end;
UKRtortik вне форума Ответить с цитированием
Старый 01.03.2014, 10:57   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а зачем тут критическая секция? и зачем TStringList, и где он уничтожается?

Form1 так нельзя, да и пляски вокруг Accounts мало понятны


и зачем постоянно создавать thttpsend?
eval вне форума Ответить с цитированием
Старый 01.03.2014, 11:03   #6
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
а зачем тут критическая секция? и зачем TStringList, и где он уничтожается?

Form1 так нельзя, да и пляски вокруг Accounts мало понятны


и зачем постоянно создавать thttpsend?
а где я постоянно создаю thttpsend?
UKRtortik вне форума Ответить с цитированием
Старый 01.03.2014, 11:05   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
http:=thttpsend.create;
это код ваш?
eval вне форума Ответить с цитированием
Старый 01.03.2014, 11:06   #8
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
это код ваш?
Ну я его создал 1 раз и все. Что не так?
UKRtortik вне форума Ответить с цитированием
Старый 01.03.2014, 11:11   #9
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ну если вы в своем коде не видите где чего и как, то есть подозрение
eval вне форума Ответить с цитированием
Старый 01.03.2014, 11:13   #10
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
ну если вы в своем коде не видите где чего и как, то есть подозрение
Просто учусь только, это не мой код, разбераю исходник, хочу понять что и как. Чтобы вы тут исправили?
UKRtortik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с потоками Dremst Общие вопросы Delphi 5 17.02.2014 15:14
Проблема с потоками Bax77 Общие вопросы Delphi 3 29.01.2013 16:11
Проблема с потоками vlad.md Мультимедиа в Delphi 0 07.03.2012 22:55
Проблема с потоками xStill Работа с сетью в Delphi 0 19.03.2010 10:17
Проблема с потоками vitalik007 Общие вопросы Delphi 1 11.03.2008 22:35