Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Про sleep   Найти похожие ветки 

 
Фагот   (2004-07-27 14:44) [0]

Есть такая проблема - на всемя работы процедуры sleep замирает вся система. Ент, не тормозит. Просто новые процессы не запускаются. Допустим, стоит слип на минуту. Я в это время запускаю, допустим, WinWord. Так вод , даже процесс winword не появляется до тех пор, пока не закончится слип. Как только он закончился - все работает до тех пор, пока снова не запустится слип.
В чём проблема?


 
Игорь Шевченко ©   (2004-07-27 14:48) [1]


> на всемя работы процедуры sleep замирает вся система


Эт где ты такую систему нашел ?


 
ssk ©   (2004-07-27 14:49) [2]

вместо слипа попробуй это. тоже подпрограмма задержки:


procedure Delay(X:longint);
const
 StartTick : LONGINT = 0;
begin
 StartTick := GetTickCount;
 while GetTickCount - StartTick < x do Application.ProcessMessages;
end;


 
Фагот   (2004-07-27 14:53) [3]


> ssk

Это не подойдёт - пустой цикл грузит проц!
> Игорь Шевченко
Наверно я неправильно выразился. Все запущенные до этого процессы нормально, без тормозов работают, а вто новые не запускаются до окончания слипа.


 
Anatoly Podgoretsky ©   (2004-07-27 14:56) [4]

Как это ты себе представляешь, сам же сказал спать


 
Фагот   (2004-07-27 15:00) [5]

Может я чего-то недочитал в хелпе. Насколько я понимаю, sleep - и засыпает программа, а не система. И моя программа в этом случае другим процессам мешать не должна...


 
pasha_golub ©   (2004-07-27 15:11) [6]

А может код показать? Мож там какой хитрый слип у вас?


 
Reindeer Moss Eater ©   (2004-07-27 15:13) [7]

http://delphimaster.net/view/1-1090838969/

Говорили тебе, используй штатный планировщик.


 
Anatoly Podgoretsky ©   (2004-07-27 15:16) [8]

Фагот   (27.07.04 15:00) [5]
А как тогда быть с Фагот   (27.07.04 14:53) [3] где ты правду говоришь


 
Piter ©   (2004-07-27 15:28) [9]

ssk ©   (27.07.04 14:49) [2]

очень умно, я тебе скажу...
может, лучше таймер тогда задействовать?


 
Фагот   (2004-07-27 15:34) [10]


> Anatoly Podgoretsky

Я уже убрал все циклы. Оставил только sleep. И всё отлично , кроме того, что я написал. ВСЕ процессы, запущенные до этого - не тормозят, работают. Новые - не запускаются!!! Так и должно быть?


 
panov ©   (2004-07-27 15:39) [11]

Не верю! (c) Станиславский.


 
Vit@ly ©   (2004-07-27 15:43) [12]


> Есть такая проблема - на всемя работы процедуры sleep замирает
> вся система

Если не затруднит, в чем смысл такого слипа?


 
Reindeer Moss Eater ©   (2004-07-27 15:49) [13]

ВСЕ процессы, запущенные до этого - не тормозят, работают. Новые - не запускаются!!! Так и должно быть?

Не запускаются кем?
Спящей программой?


 
Фагот   (2004-07-27 15:49) [14]


> Vit@ly
Процедура sleep (msec)(sysutils). Программа замирает, не реагирует на пользователя на период msec. Не суть важно. Важно только то, что все остальные  процессы находятся как бы в отстойнике и не запускаются до тех пор, пока слип не кончится. Я хочу выяснить - почему это?


 
Фагот   (2004-07-27 15:51) [15]


> Reindeer Moss Eater

Прошу прощения, если выражаюсь непонятно. Нет, не моей программой, а вообще... С итконки на раб столе, через окошки и т.д. То есть не через мою программу.


 
Reindeer Moss Eater ©   (2004-07-27 15:55) [16]

У тебя ошибка в программе.
Программа со слипом не должна приводить к таким последствиям.


 
DK   (2004-07-27 16:00) [17]

сделал так же:
на форму кинул кнопку, в OnClick написал sleep(10000);
запускаю sleep и затем Word
пока sleep не закончится - Word не открывается


 
panov ©   (2004-07-27 16:03) [18]

У меня все прекрасно запускается.
Да и наче и быть не может.


 
Фагот   (2004-07-27 16:03) [19]


> Reindeer Moss Eater

Спасибо и на этом.Но дело в том, что уж больно программа простенькая ошибке закрасться просо некуда...


 
Андрей Л.   (2004-07-27 16:03) [20]

Специально попробовал

Броссил на чистую форму кнопку и одну строчку написал

procedure TForm1.Button1Click(Sender: TObject);
begin
 sleep(50000);
end;


Все процессы запускаются очень корректно, а сама прога висит.


 
Reindeer Moss Eater ©   (2004-07-27 16:04) [21]

сделал так же:
на форму кинул кнопку, в OnClick написал sleep(1000 * 30);
запускаю sleep и затем Word
пока sleep не закончится - успеваю запустить не одну копию Word


 
Reindeer Moss Eater ©   (2004-07-27 16:06) [22]

Фагот, поздравляю.
Ты нашел простой и эффективный способ блокировки запуска любых неугодных тебе приложений без всяких перехватов, хуков и т.д.

Скорее регистрируй авторское право.


 
Андрей Л.   (2004-07-27 16:07) [23]

Во-во и я про то же. :)

//Автору
На другой машине пробовал прогу свою запустить?


 
Anatoly Podgoretsky ©   (2004-07-27 16:17) [24]

Фагот   (27.07.04 16:03) [19]
Мы тут видели программки, где в одной простой строчке более трех ошибок.


 
MU ©   (2004-07-27 16:20) [25]

Windows.Sleep;
  SysUtils.Sleep
М.б. разница в этом


 
MU ©   (2004-07-27 16:22) [26]

хотя нет...
procedure Sleep; external kernel32 name "Sleep"; stdcall;


 
Digitman ©   (2004-07-27 16:22) [27]


> Насколько я понимаю, sleep - и засыпает программа


а, может, не заниматься дурацкими домыслами ? а просто почитать и понять, что эта ф-ция усыпляет конкретный трэд процеса , а не "программу" ? или различия в понятиях "программа", "процесс", "трэд" для тебя - пустой звук ?



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.032 c
1-1090516990
AlexeyM
2004-07-22 21:23
2004.08.08
run-time


3-1089656670
abakh
2004-07-12 22:24
2004.08.08
проблема с Yaffil 1.5 в Win9x


1-1090928885
saNat
2004-07-27 15:48
2004.08.08
TListBox


14-1090610914
Opilki_Inside
2004-07-23 23:28
2004.08.08
В эту субботу поезд....


1-1090438400
TBeginner
2004-07-21 23:33
2004.08.08
Как узнать имя файла беc расширения