Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 16.01.2012, 22:49   #1
losbl9
 
Регистрация: 16.01.2012
Сообщений: 7
Репутация: 10
По умолчанию многопоточность

всем привет!
программа при выполнении одного потока работает нормально, но стоит только добавить еще один все перестает выдает ошибку.

Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 52
Размер:	14.7 Кб
ID:	46631

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, syncobjs;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Edit1: TEdit;
    Button1: TButton;
    Memo2: TMemo;
    IdHTTP1: TIdHTTP;
    Edit2: TEdit;
    //procedure aut(poz:integer);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

 potok = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended: Boolean);
  end;

var
  Form1: TForm1;
  kollin:integer;
  p:potok;
  work:boolean;
  cs:tcriticalsection;
  Page,log,pas:string;

implementation

{$R *.dfm}

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

procedure potok.execute;
var cur,k,i:integer;
  q:string;
begin
  form1.IdHTTP1.Create;
  form1.IdHTTP1.AllowCookies:=true;
  form1.IdHTTP1.HandleRedirects:=true;
  cur:=0;
while work do
begin
  cs:=tcriticalsection.Create;
  if cur<form1.Memo1.Lines.count then
    k:=cur
  else
    work:=false;
  inc(cur);
  cs.Leave ;
  if work then
  begin
    log:='';
    pas:='';
    q:='';
    q:=form1.memo1.Lines[k];
    i:=pos(':',q);
    log:=copy(q,0,i-1);
    pas:=(copy(q,i+1,length(q)));

    try
      Page:=form1.IdHTTP1.Get('url'+log+'&pass='+pas);
    except
    end;
    if Pos('logout', Page)<>0 then
      form1.memo2.Lines.Add('Авторизация удалась')
    else
      form1.memo2.Lines.Add('Авторизация не удалась');
  end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
work:=true;
for i:=0 to 5 do
p:=potok.Create(false);
end;

end.
помогити пожалуйта

Последний раз редактировалось losbl9; 16.01.2012 в 23:01.
losbl9 вне форума   Ответить с цитированием
Старый 16.01.2012, 23:00   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,868
Репутация: 6688
По умолчанию

Ознакомтесь с методом Synchronize потока, для чего он нужен и как его использовать
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 16.01.2012, 23:16   #3
losbl9
 
Регистрация: 16.01.2012
Сообщений: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ознакомтесь с методом Synchronize потока, для чего он нужен и как его использовать
спасибо за помощь, все понял, работает
losbl9 вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточность alex0097 Общие вопросы Delphi 3 05.05.2011 22:46
Многопоточность WennY Общие вопросы Delphi 11 23.04.2011 00:46
Многопоточность и с++ Koshmarovsky Visual C++ 13 06.09.2010 20:39
Многопоточность CrazyDude Общие вопросы Delphi 1 18.04.2010 19:00
Многопоточность JakSon Общие вопросы Delphi 10 27.12.2009 03:19


01:55.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.