powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / GetTickCount
12 сообщений из 12, страница 1 из 1
GetTickCount
    #39830380
VladimirVVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно было создать паузу в цикле, для чего я использовал GetTickCount
будет ли такий вариант правельным?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
procedure datainapp;
var
i,c,a:integer;
d:integer = 20000;
begin
 a := GetTickCount;
{**************************}
 for i:=0 to c do
  begin
  {**************************}
repeat
     Application.ProcessMessages;
     {**************************}
     break;
     end;
   until (GetTickCount - a) >= d;
  end;
  timerD.Enabled:=False;
  datayou;
end;
...
Рейтинг: 0 / 0
GetTickCount
    #39830383
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
за это убивать надо! (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GetTickCount
    #39830389
delphinotes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladimirVVP,

а ещё GetTickCount может перейти через 2^32 и выражение в скобках станет отрицательным
...
Рейтинг: 0 / 0
GetTickCount
    #39830393
Фотография Kast2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
uses System.Diagnostics

procedure Test;
var
  i: Int64;
  sw: TStopwatch;
begin
  sw := TStopwatch.StartNew;
  // do smth
  sw.Stop;
  i:=sw.ElapsedMilliseconds;
end;
...
Рейтинг: 0 / 0
GetTickCount
    #39830397
Фотография Kast2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс, не прочитал правильно :)

немного говнокода
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
uses
   System.SyncObjs

procedure TGetLineCNTsThread.Execute;
var
  se:TSimpleEvent; 
  wr:TWaitResult;
begin
  se:=TSimpleEvent.Create(nil,False,False,'tmrCnt');
  try
      wr:=se.WaitFor(1000);
      if wr=wrTimeout then
        begin
          //do smth
        end
      else
        Break;
  finally
    FreeAndNil(se);
  end;
end;
...
Рейтинг: 0 / 0
GetTickCount
    #39830407
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirVVPбудет ли такий вариант правельным?Нет.

1. Пауза в цикле это нонсенс. Расскажите чего вы хотите добиться?
2. Application.ProcessMessages с вероятностью 95% даст побочные эффекты
3. Для этого есть другие функции
4. Ваш код не обеспечивает паузы
...
Рейтинг: 0 / 0
GetTickCount
    #39830482
VladimirVVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

в общем в цикле передаются данные в php для записи в БД, понимаю, что это не пауза, но мне нужно сделать проверку на запись - тоесть в нутри repeat некоторое время выполняется запрос (проверка выполнения записи). .если запись произошла то отмечам, что запись в базу добавлена и делаем break; и занаво проходим цикл.. если за установленное время не получен ответ , то продолжаем выполнять основной цикл.. Но в тоже время у меня должен быть доступ к работе с программой (что бы не зависала)..
данная процедура выполняется по таймеру..
...
Рейтинг: 0 / 0
GetTickCount
    #39830484
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.06.2019 18:59, VladimirVVP пишет:
> мне нужно сделать проверку на запись

зачем?
почему?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GetTickCount
    #39830553
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirVVP... Но в тоже время у меня должен быть доступ к работе с программой (что бы не зависала)..
данная процедура выполняется по таймеру..

Вынести тяжелую операцию в дополнительный поток.
...
Рейтинг: 0 / 0
GetTickCount
    #39830685
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirVVPв общем в цикле передаются данные в php для записи в БД,Что мешает в БД писать самому? Без PHP прослойки
VladimirVVPесли за установленное время не получен ответ , то продолжаем выполнять основной цикл.Т.е. добавлена запись, не добавлена нам все равно. Так зачем тогда ждать?
VladimirVVPНо в тоже время у меня должен быть доступ к работе с программойКакое управление вы хотите? Закрыть программу посреди цикла? И что тогда будет с консистентностью данных?
VladimirVVPданная процедура выполняется по таймеру..Вообще отлично! Таймер, ProcessMessages и задержки. Архитектурное решение просто супер! А выполнять ее по приходу данных не пробовали?
...
Рейтинг: 0 / 0
GetTickCount
    #39830686
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_VladimirVVPв общем в цикле передаются данные в php для записи в БД,Что мешает в БД писать самому? Без PHP прослойкиИли просто анализировать результат работы PHP скрипта
...
Рейтинг: 0 / 0
GetTickCount
    #39830706
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldmi45VladimirVVP... Но в тоже время у меня должен быть доступ к работе с программой (что бы не зависала)..
данная процедура выполняется по таймеру..

Вынести тяжелую операцию в дополнительный поток.+1
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / GetTickCount
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]