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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2010, 14:13   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Альтернатива sleep для треда

У меня в потоке стоит slepp для того что бы отсчитывать нужное количество времини до продолжения потока, но форма зависает, решил заменить на
Код:
var
FPos:integer;
h:integer;
begin
FPos := 0;
 while FPos < h do
 end
но не какой приостановки не получается и форма всё равно виснит. Есть ли ещё альтернативы слипу что бы форма не висла?
P.S. Сорри всё таки не решил

Последний раз редактировалось bulldog5293; 27.11.2010 в 21:35.
bulldog5293 вне форума Ответить с цитированием
Старый 27.11.2010, 16:41   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код:
while FPos < h do
Application.ProcessMessages;
mihali4 вне форума Ответить с цитированием
Старый 27.11.2010, 21:07   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Не, не то мне в поток нада
bulldog5293 вне форума Ответить с цитированием
Старый 27.11.2010, 21:17   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

чем слип не годится?
покажите весь код потока.
у меня такое чувство что вы вешаете слип в синхрониз метод.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.11.2010, 21:31   #5
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Он уже написал, что у него по другой причине проблема, а так, да, ProcessMessages тут не катят.
_Engine_ вне форума Ответить с цитированием
Старый 27.11.2010, 21:39   #6
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Вот часть кода из потока
Код:
function SetTimeOutJS(Str: String): Integer;
var
  I: Integer;
  S: String;
begin
  S := '")'',';
  I := Pos(S, Str);
  if I > 0 then
  begin
    S := Copy(Str, I + Length(S), Length(Str));
    I := Pos(')', S);
    if I > 0 then
    begin
      S := Trim(Copy(S, 1, I - 1));
      I := StrToIntDef(S, -1);
      if I > 0 then
        Result := I
      else
        Result := 0;
    end;
  end;
end;

begin
      Otvet1 := HTTP_BOT.get('http://' + Сайт);
      h := SetTimeOutJS(Otvet1);
      Sleep(h);//в этот момент вешается форма на h секунд
      HTTP_BOT.get('http://' + Сайт + Ur);
end;

Последний раз редактировалось bulldog5293; 27.11.2010 в 21:44.
bulldog5293 вне форума Ответить с цитированием
Старый 27.11.2010, 21:43   #7
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

И зачем это?
_Engine_ вне форума Ответить с цитированием
Старый 27.11.2010, 21:56   #8
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

всмысли зачем? Мне приостановку на определённое время нужно делать
bulldog5293 вне форума Ответить с цитированием
Старый 27.11.2010, 22:02   #9
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Так недостаточно информации... Покажи, как синхронизация с формой производится? Вся приведенная процедура обернута методом Synhronize?
_Engine_ вне форума Ответить с цитированием
Старый 27.11.2010, 22:08   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

что это за функция?
где код потока?
(или это он и был с извратом?)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sleep(50); за 63 мс... или за 47... Teksa Общие вопросы C/C++ 8 20.07.2010 08:34
Функция Sleep(); VadEr Общие вопросы Delphi 6 10.09.2009 17:45
Проблема с Sleep! k1r1ch Общие вопросы Delphi 11 20.06.2009 19:12
Функция для Sleep russian-stalker Общие вопросы Delphi 5 12.09.2008 16:40
Альтернатива sleep Zuzlan Общие вопросы Delphi 2 01.11.2007 01:44