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

Остановить все потоки а потом снова запустить

-

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

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

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

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

есть условие:

if pos('captcha_code',s1) >0 then
begin
...
co.suspend;
....
end;
  Ответить с цитированием
Старый 09.12.2012, 21:17   #2
 Старший сержант
Аватар для metraz
 
metraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядом
Регистрация: 25.12.2011
Сообщений: 191
Популярность: 5259
Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
Отправить сообщение для metraz с помощью Skype™
 
По умолчанию Re: Остановить все потоки а потом снова запустить

код остановки потока?
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 10.12.2012, 19:20   #3
 Разведчик
Аватар для *Хalyava*
 
*Хalyava* на правильном пути
Регистрация: 16.10.2011
Сообщений: 9
Популярность: 92
Сказал(а) спасибо: 8
Поблагодарили 12 раз(а) в 8 сообщениях
 
По умолчанию Re: Остановить все потоки а потом снова запустить

Цитата:
Сообщение от metrazПосмотреть сообщение
код остановки потока?

не совсем понимаю что вы хотите от меня услышать

если вы спрашиваете нужен ли мне код остановки потока, то:

в смысле ? какой код
мне нужна процедура\функция которая заморозит все потоки разом при условии = true. а потом с помощью кнопки запустит их снова.
  Ответить с цитированием
Старый 10.12.2012, 19:45   #4
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Остановить все потоки а потом снова запустить

Такое нельзя написать не зная имени объекта с потоками, что они делают, откуда планируется вызывать эту функцию...
  Ответить с цитированием
Старый 11.12.2012, 15:09   #5
 Разведчик
Аватар для *Хalyava*
 
*Хalyava* на правильном пути
Регистрация: 16.10.2011
Сообщений: 9
Популярность: 92
Сказал(а) спасибо: 8
Поблагодарили 12 раз(а) в 8 сообщениях
 
По умолчанию Re: Остановить все потоки а потом снова запустить

Цитата:
Сообщение от SinyssПосмотреть сообщение
Такое нельзя написать не зная имени объекта с потоками, что они делают, откуда планируется вызывать эту функцию...

функция должна вызывается из процедуры Execute, которая как известно уже описана в классе TMyThread.

происходит post запроса на сервер. дальше проверяется условие . если оно истинное - замораживаем все потоки а дальше уже запускаем их (то же кол-во, С ТОГО ЖЕ МЕСТА) снова по нажатию кнопочки.

Добавлено через 4 часа 55 минут
забыл добавить.

вот эту паузу я делаю для того, что бы ввести капчу и отправить ее на сервер.
если ставить 1 поток:
поток останавливается (использую suspend) я ввожу капчу и отправляю ее.


при нескольких потоках получается вылазиют сразу несколько капч(image на форме только 1). как мне все ввести их по очереди чтобы они соответствовали логину\паролю которому она принадлежит?

Последний раз редактировалось *Хalyava*; 11.12.2012 в 20:04. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 11.12.2012, 21:49   #6
 Старший сержант
Аватар для metraz
 
metraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядом
Регистрация: 25.12.2011
Сообщений: 191
Популярность: 5259
Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
Отправить сообщение для metraz с помощью Skype™
 
По умолчанию Re: Остановить все потоки а потом снова запустить

Цитата:
Сообщение от *Хalyava*Посмотреть сообщение
функция должна вызывается из процедуры Execute, которая как известно уже описана в классе TMyThread.

происходит post запроса на сервер. дальше проверяется условие . если оно истинное - замораживаем все потоки а дальше уже запускаем их (то же кол-во, С ТОГО ЖЕ МЕСТА) снова по нажатию кнопочки.

Добавлено через 4 часа 55 минут
забыл добавить.

вот эту паузу я делаю для того, что бы ввести капчу и отправить ее на сервер.
если ставить 1 поток:
поток останавливается (использую suspend) я ввожу капчу и отправляю ее.


при нескольких потоках получается вылазиют сразу несколько капч(image на форме только 1). как мне все ввести их по очереди чтобы они соответствовали логину\паролю которому она принадлежит?

через синхронизацию. и останавливать потоки не надо.
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 12.12.2012, 20:45   #7
 Разведчик
Аватар для *Хalyava*
 
*Хalyava* на правильном пути
Регистрация: 16.10.2011
Сообщений: 9
Популярность: 92
Сказал(а) спасибо: 8
Поблагодарили 12 раз(а) в 8 сообщениях
 
По умолчанию Re: Остановить все потоки а потом снова запустить

спасибо. пробую...
подскажи еще как можно приостановить выполнение процедуры а потом с кнопки ее запустить???

тут такая фигня.
запихал я в синхронизацию код для "доставки" и ввода\отправки капчи в программу, а сама процедура синхронизации работает без остановки что собственно не дает мне возможности ввести и отправить капчу.
  Ответить с цитированием
Старый 12.12.2012, 22:25   #8
 Старший сержант
Аватар для metraz
 
metraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядом
Регистрация: 25.12.2011
Сообщений: 191
Популярность: 5259
Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
Отправить сообщение для metraz с помощью Skype™
 
По умолчанию Re: Остановить все потоки а потом снова запустить

создайте какой нибудь триггер в кнопке, которые выведет синхронизацию из рекурсии и продолжит работу.
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 14.12.2012, 20:06   #9
 Разведчик
Аватар для *Хalyava*
 
*Хalyava* на правильном пути
Регистрация: 16.10.2011
Сообщений: 9
Популярность: 92
Сказал(а) спасибо: 8
Поблагодарили 12 раз(а) в 8 сообщениях
 
По умолчанию Re: Остановить все потоки а потом снова запустить

еще подскажите можно ли задать условие на проверку нажатия кнопки ???

if button1.click then // пример (чтобы понять что мне нужно)
  Ответить с цитированием
Старый 14.12.2012, 20:24   #10
 Разведчик
Аватар для Tip.the.besT
 
Tip.the.besT на правильном путиTip.the.besT на правильном пути
Регистрация: 17.01.2012
Сообщений: 19
Популярность: 126
Сказал(а) спасибо: 8
Поблагодарили 30 раз(а) в 11 сообщениях
Отправить сообщение для Tip.the.besT с помощью ICQ Отправить сообщение для Tip.the.besT с помощью Skype™
 
По умолчанию Re: Остановить все потоки а потом снова запустить

Если ты действительно хочешь остановить потоки (хотя как сказано выше можно синхронизировать, но иногда не лучший вариант, например когда капча вылетает не часто, то умнее будет приостановить), то тебе нужно просто при создание потока загнать их в массив, далее пройтись по массиву циклом и остановить все. Немного кода:
Код:
a: array [1..10] of potok;//массив для хранения наших потоков
Создаём потоки, а также добавляем их в массив.
Код:
for pot:=1  to 10 do 
  a[pot]:=potok.Create(false);
Теперь можно манипулировать:
Код:
a[1].suspend;
Код:
a[1].resume;
  Ответить с цитированием
Старый 15.12.2012, 16:25   #11
 Старший сержант
Аватар для metraz
 
metraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядом
Регистрация: 25.12.2011
Сообщений: 191
Популярность: 5259
Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
Отправить сообщение для metraz с помощью Skype™
 
По умолчанию Re: Остановить все потоки а потом снова запустить

Цитата:
Сообщение от *Хalyava*Посмотреть сообщение
еще подскажите можно ли задать условие на проверку нажатия кнопки ???

if button1.click then // пример (чтобы понять что мне нужно)

у кнопки есть событие onclick
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Как остановить цикл =PaLeTiZaToR= Вопросы и ответы, обсуждения 2 21.08.2012 20:53
[Помогите!] остановить потоки после перебора [Na`Vi]DendI Вопросы и ответы, обсуждения 3 27.07.2012 08:54
Остановить ману талисмана. Мерль Баги и читы Lineage 2 1 06.12.2010 14:52
Как остановить таймер tolctiak2007 Cabal Online 4 01.08.2009 16:41

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net