![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отсчёт времени(Timer) в отдельном потоке [D7, WinXP]
Zhekson © (2004-10-20 12:39:00)Тема!
Zhekson (2004-10-20 13:48:00) [1]>Cosinus © (20.10.04 13:42) [17]
вариант. спасибо.
Digitman (2004-10-20 13:46:00) [2]
> н ежно
это я мощно задвинул)
Zhekson (2004-10-20 13:44:00) [3]>Digitman © (20.10.04 13:40) [16]
>не "попроще", а как положено - точно и конкретно.
>почему бы сразу не сказать. что тебя интересует конкретно
>класс TTimer ?
принято.
Спасибо.
Cosinus (2004-10-20 13:42:00) [4]Блин... Не оно?
procedure Delay(ms: longint);
var
TheTime: LongInt;
begin
TheTime := GetTickCount + ms;
while GetTickCount < TheTime do
begin
Application.ProcessMessages;//если нужен ВЫСОКИЙ приоритет можно эту строку закоментировать ;)
DoSomeThing;
end
end;
Digitman (2004-10-20 13:40:00) [5]
> Предположим у меня в
> procedure TForm1.Timer1Timer
не "попроще", а как положено - точно и конкретно.
почему бы сразу не сказать. что тебя интересует конкретно класс TTimer ?
> Можно ли
Можно.
Для этого в трэде нежно организовать цикл ожидания/выборки/диспетчеризации вин-сообщений
> с высоким приоритетом
приоритет трэда не имеет к этому никакого отношения
Zhekson (2004-10-20 13:34:00) [6]Попробую сформулировать попроще:
Предположим у меня в
procedure TForm1.Timer1Timer(Sender: TObject);проделывается какая то операция. Можно ли создать поток который вот так(NameThread(TForm1.Timer1Timer(Sender));) - будет запускать процедуру таймера в отдельном потоке с высоким приоритетом.
Digitman (2004-10-20 13:27:00) [7]
> Zhekson (20.10.04 13:11) [10]
> нет, пытаюсь получить ответ раньше чем могу разобраться
> в нём сам. Просто не вру.
в Вин32 механизмов и программных методов отсчета врем.интервалов не так уж и мало.
детальное описание всех их тянет на лекцию
Cosinus (2004-10-20 13:18:00) [8]
Простите. Не закрыл тэг.
Cosinus (2004-10-20 13:17:00) [9]
> GuAV © (20.10.04 13:09) [9]
Сорри... торможу конечно:)) Ну человек говорит, что нету у негоGetTickCountпо F1, вот и стормозил, тем более, что здесь постоянно вылезают различия в версиях...
> default © (20.10.04 13:13) [11]
Прямоугольный треугольник :))
default (2004-10-20 13:13:00) [10]GuAV © (20.10.04 13:09) [9]
лучше спроси что раньше появился синус или КОсинус
Zhekson (2004-10-20 13:11:00) [11]>Ega23 © (20.10.04 12:40) [1]
Протуберанс!
>default © (20.10.04 12:44) [2]
как узнаю расскажу, оставь координаты.
>Digitman © (20.10.04 12:59) [5]
нет, пытаюсь получить ответ раньше чем могу разобраться в нём сам. Просто не вру.
>begin...end © (20.10.04 13:01) [6]
Серьёзно.., просто не знаю что такое SDK и где у него вход.
>default © (20.10.04 13:01) [7]
SDK??? GetTickCount + F1 = пусто.(жирная)
>Cosinus © (20.10.04 13:02) [8]
Спасибо.
GuAV (2004-10-20 13:09:00) [12]Cosinus © (20.10.04 13:02) [8]
Кстати я не уверен, в каких Дельфях она появилась...
:-)
А в каких появилась CreateWindow ?
или CreateFile ?
Cosinus (2004-10-20 13:02:00) [13]Модуль idGlobal.
Retrieves the number of milliseconds since the computer was started.
function GetTickCount: Cardinal;
Returns
Cardinal - Number of milliseconds (ticks).
Description
GetTickCount is a Cardinal function used to retrieve the number of milliseconds since the computer was started.
GetTickCount is often used when calculating the response times for Indy components such as TIdEcho and TIdTime.
GetTickCount encapsulates the platform-specific calls necessary to provide a high resolution timer for fixed duration events. On the Windows platform, the function used is Windows.GetTickCount. On the Linux platform, GetTickCount uses the library function clock adjusted to thousandths of CLOCKS_PER_SECs.
Кстати я не уверен, в каких Дельфях она появилась...
default (2004-10-20 13:01:00) [14]Zhekson (20.10.04 12:58) [4]
в SDK смотри а не дельфёвом хелпе да и по F1 всё должно показываться
begin...end (2004-10-20 13:01:00) [15]
> [4] Zhekson (20.10.04 12:58)
Help -> Windows SDK -> GetTickCount
Густо...
Digitman (2004-10-20 12:59:00) [16]
> Zhekson (20.10.04 12:39)
> Тема!
Лекцию что ли ожидаешь ?
Zhekson (2004-10-20 12:58:00) [17]GetTickCount + F1 = пусто;
Хоть в двух словах., что это за функция???
Cosinus (2004-10-20 12:54:00) [18]Ну зачем же сразу поток то...
МожетGetTickCount + Application.ProcessMessagesпоможет?
default (2004-10-20 12:44:00) [19]не спорю, действительно тема, только знать бы что с ней делать
Ega23 (2004-10-20 12:40:00) [20]Акваланг!