ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 24.05.2010, 16:44
heretic1990
Постоянный
Регистрация: 02.07.2008
Сообщений: 472
Провел на форуме:
3728999

Репутация: 444
По умолчанию

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
первая часть программы :=false:

Timer2.Enabled:= True;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin

вторая часть программы :=true:
Timer1.Enabled:= false;
Timer2.Enabled:= false;
end;
останется только настроить интервал для таймера
 
Ответить с цитированием

  #12  
Старый 24.05.2010, 17:16
Ildon
Познающий
Регистрация: 13.04.2010
Сообщений: 66
Провел на форуме:
183788

Репутация: 2
По умолчанию

А вот те слип при котором не бует зависонов )

Код:
int time=GetTickCount();
while((GetTickCount()-time)<1000))//Или меняй задержку на свою
          {
          Application->ProcessMessages();
          }
 
Ответить с цитированием

  #13  
Старый 24.05.2010, 17:20
Faost
Новичок
Регистрация: 11.07.2009
Сообщений: 20
Провел на форуме:
39998

Репутация: 2
Отправить сообщение для Faost с помощью ICQ
По умолчанию

function proc(): integer;
begin
Sleep(Твое время задержки);
//Твои действия "второй части" (потока).
result:= 0;
end;

var id: DWORD;
begin
CreateThread(nil, 0, @proc, nil, 0, id);
//Твои действия "первой части" (потока);
//Если эта часть кода может выполниться за время (или раньше), которое ты поставил в Sleep выше, то раскоменировать след.строку и возложить завершение проги на второй поток (функцию proc).
//Sleep(infinite);
end.

Вариант 2:

function proc(): integer;
begin
Sleep(Твое время задержки);
//Твои действия "второй части" (потока).
result:= 0;
end;

var id: DWORD;
h: THandle;
begin
h:= CreateThread(nil, 0, @proc, nil, 0, id);
//Твои действия "первой части" (потока);
WaitForSingleObject(h, infinite); //ждем завершения созданного потока.
end.

Последний раз редактировалось Faost; 24.05.2010 в 21:19..
 
Ответить с цитированием

  #14  
Старый 24.05.2010, 20:14
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме:
1229135

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

Цитата:
//Sleep(infinite);
ппц... вы тут такие вещи творите....

Ildon, Нельзя на это полагаться, еще раз повторяю
 
Ответить с цитированием

  #15  
Старый 24.05.2010, 20:46
Ildon
Познающий
Регистрация: 13.04.2010
Сообщений: 66
Провел на форуме:
183788

Репутация: 2
По умолчанию

Цитата:
Сообщение от AlexTheC0d3r  
ппц... вы тут такие вещи творите....

Ildon, Нельзя на это полагаться, еще раз повторяю

Скоко раз так делал все нормально было
 
Ответить с цитированием

  #16  
Старый 24.05.2010, 20:58
Faost
Новичок
Регистрация: 11.07.2009
Сообщений: 20
Провел на форуме:
39998

Репутация: 2
Отправить сообщение для Faost с помощью ICQ
По умолчанию

Цитата:
Сообщение от AlexTheC0d3r  
ппц... вы тут такие вещи творите....

Ildon, Нельзя на это полагаться, еще раз повторяю
1. Скажи, что плохого в этих "вещах" и приведи пример.
2. Предложи лучший вариант.
3. Без выполнения пунктов 1 и 2 не нужно говорить того, что ты говоришь, ибо это тебя не красит как человека, разбирающегося в этих "вещах".
 
Ответить с цитированием

  #17  
Старый 24.05.2010, 21:24
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме:
1229135

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

Во-первых, в функции потока необходимо
Цитата:
ExitThread(0);
Во-вторых, и чтобы не было этого бредового
Цитата:
Sleep(infinite);
, есть специальная функция
Цитата:
WaitForSingleObject();
Цитата:
Скоко раз так делал все нормально было
Если ты так делал, и было нормально, это совсем не означает что это правильно!
Еще раз повторяю, нет гарантии, что
Цитата:
ProcessMessages();
будет выполняться определенное время/


Надеюсь теперь понятно.

UPD:
Цитата:
function proc(): integer;
begin
Sleep(Твое время задержки);
//Твои действия "второй части" (потока).
result:= 0;
end;

var id: DWORD;
h: THandle;
begin
h:= CreateThread(nil, 0, @proc, nil, 0, id);
//Твои действия "первой части" (потока);
WaitForSingleObject(h, infinite); //ждем завершения созданного потока.
end.
Цитата:
ExitThread(0);
где? Иначе программа никогда не завершится

Последний раз редактировалось AlexTheC0d3r; 24.05.2010 в 21:27..
 
Ответить с цитированием

  #18  
Старый 24.05.2010, 21:45
Faost
Новичок
Регистрация: 11.07.2009
Сообщений: 20
Провел на форуме:
39998

Репутация: 2
Отправить сообщение для Faost с помощью ICQ
По умолчанию

AlexTheC0d3r,
Цитата:
Во-первых, в функции потока необходимо ExitThread(0);
Цитата:
Завершение рабочего потока выполняется просто: нужно просто завершить контролирующую функцию и возвратить значение, обозначающее причину завершения потока. Для этого можно использовать оператор return. (с) msdn.
Далее.
Я не вижу от тебя примера, где бы return (result) давал сбой, да и в msdn ясно написано, что return вполне подходит для выхода из потока. WTF?
Цитата:
есть специальная функция WaitForSingleObject();
смотри в моем посте вариант 2 (дописал ранее твоего поста). Однако и тут я не вижу от тебя примера, которым бы ты показал, что Sleep(infinite) - бредовый.
Цитата:
ExitThread(0); где? Иначе программа никогда не завершится
дружище, посмотри на тему, там присутствует слово Delphi. Borland`овские кодеры взяли этот вопрос на себя.
Прошу еще раз обратить внимание на 3ий пункт моего пред.поста.

Последний раз редактировалось Faost; 24.05.2010 в 21:50..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработчики Mozilla представили технологию изолированного выполнения плагинов Suicide Мировые новости 8 17.12.2009 12:05
Новый механизм для безопасного выполнения подозрительных программ в Linux Suicide Мировые новости 2 27.05.2009 22:47
ТРЕБУЮТСЯ кодеры для выполнения студенческих работ lisa99 О Работе 7 23.12.2008 20:58
Нужна задержка nc.STRIEM С/С++, C#, Delphi, .NET, Asm 4 31.05.2006 14:54



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ