ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|
Задержка выполнения программы.[Delphi] |

22.05.2010, 23:26
|
|
Участник форума
Регистрация: 14.01.2009
Сообщений: 194
Провел на форуме: 798217
Репутация:
44
|
|
Задержка выполнения программы.[Delphi]
Есть программа,первая часть выполняется сразу.
Хочу сделать,чтобы вторая часть программы выполнялась через 5 минут после запуска программы.
Можно ли это реализовать?
|
|
|

22.05.2010, 23:27
|
|
Banned
Регистрация: 06.12.2009
Сообщений: 47
Провел на форуме: 191390
Репутация:
74
|
|
Sleep();
|
|
|

22.05.2010, 23:30
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от ZnikiR
Есть программа,первая часть выполняется сразу.
Хочу сделать,чтобы вторая часть программы выполнялась через 5 минут после запуска программы.
Можно ли это реализовать?
Создать дополнительный поток при старте, и в нем с самого начала Sleep(5*60*1000);
гугли CreateThread();
|
|
|

22.05.2010, 23:30
|
|
Участник форума
Регистрация: 11.07.2009
Сообщений: 175
Провел на форуме: 2835808
Репутация:
185
|
|
компонент Timer чем не вариант? (ну или для второй части можно задать какое-либо(любое) условие для выполнения)
P.s. при sleep программа "подвисает"
|
|
|

22.05.2010, 23:31
|
|
Banned
Регистрация: 06.12.2009
Сообщений: 47
Провел на форуме: 191390
Репутация:
74
|
|
Код:
TNewThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TNewThread.Execute;
begin
Sleep(5000);
end;
procedure TForm1.btn1Click(Sender: TObject);
var
NewThread: TNewThread;
begin
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLower;
NewThread.Resume;
end;
|
|
|

22.05.2010, 23:32
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от h(f)ucker
компонент Timer чем не вариант?
P.s. при sleep программа "подвисает"
при Sleep() она замораживается...
Есть аналог в виде Delay (http://www.delphisources.ru/pages/faq/base/delay_func.html), но я не рекомендую его использовать
|
|
|

22.05.2010, 23:35
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от [ac1D]
Код:
TNewThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TNewThread.Execute;
begin
Sleep(5000);
end;
procedure TForm1.btn1Click(Sender: TObject);
var
NewThread: TNewThread;
begin
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLower;
NewThread.Resume;
end;
Советую перейти от такого создания потоков к CreateThread()... в данном случае код получится намного компактнее и эффективнее
|
|
|

23.05.2010, 17:20
|
|
Участник форума
Регистрация: 14.01.2009
Сообщений: 194
Провел на форуме: 798217
Репутация:
44
|
|
Так сейчас пробывал,ничего не получилось.
Можешь показать как сделать комактнее?
|
|
|

24.05.2010, 02:16
|
|
Познающий
Регистрация: 20.01.2010
Сообщений: 43
Провел на форуме: 41357
Репутация:
6
|
|
Скинь код, посмотрим что там не получилось. Сдесь не экстрасенсы 
|
|
|

24.05.2010, 07:46
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от AlexTheC0d3r
Советую перейти от такого создания потоков к CreateThread()... в данном случае код получится намного компактнее и эффективнее
Чем эффективнее?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|