powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TTimer vs TThread
12 сообщений из 12, страница 1 из 1
TTimer vs TThread
    #39455341
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мужики, нужен совет.

Планируется создавать на PageControl n-количество вкладок с ограниченным временем жизни и показом обратного таймера в заголовке, по истечении которого вкладка будет закрываться.

Что для этого лучше использовать: (1)таймер или (2)доп.поток с циклом и sleep(1000) внутри цикла?

зы. у меня почему-то сложилось представление, что вроде как куча таймеров - моветон. Однако у доп.потока с непрерывно молотящим циклом CPU Avg минимум на порядок выше, чем у таймера
=================
Док.

Win7 Ultim x64/Deb 8.7 i386:
FB 3.0.2.32703, диалект 3, SS(win)/SC(Deb),
Lazarus 1.9(r.54844); FPC 3.1.1 (r.36160), IBX by -Rik-; IBE 2016.5.14.1
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455345
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таймер лучше. Не хочешь заводить кучу - заведи один, который будет уменьшать все счётчики
разом и закрывать вкладку по обнулении.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455346
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокОднако у доп.потока с непрерывно молотящим циклом CPU Avg минимум на порядок выше, чем у таймера
В слипе поток спит, как ни странно. Нечему там молотить. Так что выбирай, что для тебя проще.
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455367
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док, таймер, 1 шт: каждой вкладке при ее создании назначь "момент смерти" (текущее время + константа). Таймер 1 раз в секунду (ну или реже или чаще) в цикле проверяет, не стал ли "момент смерти" больше текущего времени: если да - вкладку убиваешь, если нет - отображаешь разницу между "моментом смерти" и текущим временем.
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455400
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док> по истечении которого вкладка будет закрываться.

Спрашивать, для чего оно нужно не буду, спрошу лишь
какая нужна точность и дискретность этого "тайминга"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455601
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВ слипе поток спит, как ни странно. Нечему там молотить.
а ты сам попробуй :)

Dimitry Sibiryakov, чччД
т.е. много таймеров - это плохо?

Была мысля в runtime на каждую создаваемую вкладку создавать и таймер, потом грохать обоих. Число вкладок ограничить, скажем, 10-ю


Гаджимурадов Рустамкакая нужна точность и дискретность этого "тайминга"?
чисто бытовая - визуальный countdown для юзера
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455605
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докт.е. много таймеров - это плохо?
Это пофиг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455615
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док> т.е. много таймеров - это плохо?

Не плохо, просто с инженерной т.з. (производительности и пр.) лучше обойтись одним. Хотя проще (для понимания, реализации и сопровождения) может быть и много, а не 1.

> чисто бытовая - визуальный countdown для юзера

Тогда я бы делал на таймерах, а не потоках.
Один или несколько - дело вкуса и детали
реализации, если вкладок <10 - почти пофиг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455625
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда, пожалуй, реализую идею чччД: и овцы сыты, и волки целы :)

Спасибо за советы и мнения
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455648
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокwadmanВ слипе поток спит, как ни странно. Нечему там молотить.
а ты сам попробуй :)

В никсах поток не спит со слипом?
Или о чем речь?

ПС. Сам-то в потоке ожидалку использую (waitfor), потому не знаю как оно там. В винде слип ожидаемо себя ведет.
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455666
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокОднако у доп.потока с непрерывно молотящим циклом CPU Avg минимум на порядок выше, чем у таймера
Ты снова чего-то путаешь:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
program Project1;

uses

 CThreads, Classes;

Type

 TTimerThread = Class(TThread)

  Protected Procedure Execute; Override;

 End;

procedure TTimerThread.Execute;
begin

 While True Do
  Sleep(1000);

end;

Var

 i : Integer;

begin

 For I := 1 To 100 Do
  TTimerThread.Create(False);

 Writeln('look at cpu load :)');
 ReadLn;

end.


Загрузка проца 0.0%
...
Рейтинг: 0 / 0
TTimer vs TThread
    #39455720
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyТы снова чего-то путаешь
однако, ты опять прав


Сделал тестовый проект, в обоих случая CPU Avg составляет 0,21 (таймер)-0,29 (поток)



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


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