Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
Несовсем понятен вопрос, по исходникам вроде нет поскольку минимум Timer Event стартует в основном потоке. Но и абсолютной уверенности тоже нет т.к. используется Код: pascal 1. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 14:48 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
Таймеру не нужен отдельный поток. Он живет в вызывающем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 14:56 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
Barmaley57 Таймеру не нужен отдельный поток. Он живет в вызывающем. Откуда ты знаешь, как рнализован SetTimer() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 17:04 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
Лучше бы спросить "какая буква из документации по ссылке привела аффтара к странному заключению о создании потоков"... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 17:20 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
А вообще, появление / или нет нового потока можно проверить в ProcessExplorer'e создав объект TTimer в рантайме и выставив ему .Enabled :=true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 17:24 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Barmaley57 Таймеру не нужен отдельный поток. Он живет в вызывающем. Откуда ты знаешь, как рнализован SetTimer() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 17:42 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 18:43 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
Очень вряд ли таймер "живет" в вызывающем потоке. Вызывающий поток запросто может уйти в длительный запой расчет, не обращаясь вообще к функциям user32 и kernel32. И как тогда таймер сможет выполнить свою работу и отправить вовремя свое сообщение? SetTimer или запускает новый поток (возможно, не в своем процессе) или, разумнее всего, использует один из готовых системных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 21:55 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
shalamyanskySetTimer или запускает новый поток (возможно, не в своем процессе) или, разумнее всего, использует один из готовых системных. Ну так проведи эксперимент. Нагрузи главный поток чем хочешь и добейся чтобы GetCurrentThreadId в OnTimer вернул что-то отличное от главного. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 21:57 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
shalamyansky Вызывающий поток запросто может уйти в длительный запой расчет, не обращаясь вообще к функциям user32 и kernel32. И как тогда таймер сможет выполнить свою работу и отправить вовремя свое сообщение? Вообще-то, так и происходит. И даже если система из отдельного треда пошлет сообщение вовремя, это ничего не изменит: сообщения из очереди окна сами собой не обрабатываются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 22:01 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov shalamyanskySetTimer или запускает новый поток (возможно, не в своем процессе) или, разумнее всего, использует один из готовых системных. Ну так проведи эксперимент. Нагрузи главный поток чем хочешь и добейся чтобы GetCurrentThreadId в OnTimer вернул что-то отличное от главного. ОнТаймер - хоть убейся, в "основном" треде. Имхо, тут вопрос о том, как реализован механизм, включаемый апишным вызовом SetTimer(). Хотя, нафига это знать - непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 22:04 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
авторОперационная система Windows позволяет для каждого приложения создать несколько виртуальных таймеров. Все эти таймеры работают по прерываниям одного физического таймера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 22:08 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
rgreat авторОперационная система Windows позволяет для каждого приложения создать несколько виртуальных таймеров. Все эти таймеры работают по прерываниям одного физического таймера. И чо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 22:10 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ сообщения из очереди окна сами собой не обрабатываются. Это да, и это почти нормально, не слишком спешить с обработкой очереди, мы тут важным делом заняты, а пользователи пусть подергаются. Но в данном случае ситуация хуже - тут сообщение даже не будет отправлено. И если, предположим, дело обстоит именно таким образом, вызов какой именно функции выполнит отправку сообщения WM_TIMER, Get/PeekMessage, любой из user32? Коряво как-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 22:12 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ И чо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 22:22 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
OnTimer, естественно, работает в основном потоке, поскольку он вызван обработчиком очереди этого основного потока при обработке пришедшего WM_TIMER. Вопрос в том, кто, когда и из какого потока отправил WM_TIMER. И вот очень вряд ли, что отправитель WM_TIMER работал из потока, дернувшего SetTimer. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 22:22 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
shalamyansky ...Но в данном случае ситуация хуже - тут сообщение даже не будет отправлено... Лучше пусть очередь сообщений переполнится? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 22:51 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
shalamyansky OnTimer, естественно, работает в основном потоке, поскольку он вызван обработчиком очереди этого основного потока при обработке пришедшего WM_TIMER. Вопрос в том, кто, когда и из какого потока отправил WM_TIMER. И вот очень вряд ли, что отправитель WM_TIMER работал из потока, дернувшего SetTimer. Ядро устанавливает флаг "timer X сработал" (чтобы очередь не переполнялась), а WM_TIMER пихается в очередь при наличии флага в момент запроса очередного сообщения. Т.е. отправитель - сам поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2021, 23:03 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис Ядро устанавливает флаг "timer X сработал" (чтобы очередь не переполнялась), а WM_TIMER пихается в очередь при наличии флага в момент запроса очередного сообщения. Да, так работает, все-таки при вызове Get/PeekMessage? Ну, так, значит, так. Я чисто логически рассуждал. Но все равно, должен существовать некий сторонний поток, который флаг "timer X сработал" установит. Только оповещение основного потока о событии переместилось на чуть более ранний шаг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2021, 00:00 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
shalamyanskyдолжен существовать некий сторонний поток, который флаг "timer X сработал" установит. Не должен. Вместо флага "таймер Х сработал" может быть флаг "следующий таймер в ХХ:ХХ", который и проверяется функциями выборки. Им всё равно текущее время получать, заодно и очередь таймеров проверят. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2021, 00:25 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ ОнТаймер - хоть убейся, в "основном" треде. Ну, допустим, не в основном, а в том, в котором таймер был создан/инициализирован.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2021, 10:15 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Dimitry Sibiryakov пропущено... Ну так проведи эксперимент. Нагрузи главный поток чем хочешь и добейся чтобы GetCurrentThreadId в OnTimer вернул что-то отличное от главного. ОнТаймер - хоть убейся, в "основном" треде. Имхо, тут вопрос о том, как реализован механизм, включаемый апишным вызовом SetTimer(). Хотя, нафига это знать - непонятно. Он в том треде, в котором вызвано его создание. При создании таймера создается окно, которое будет получать сообщения от ос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2021, 10:17 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
softwarer Ну, допустим, не в основном, а в том, в котором таймер был создан/инициализирован.... Ага. И, раз уж начались разборки, напомню: 18154218 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2021, 11:14 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, спасибо, любопытно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2021, 11:20 |
|
||
|
Создаёт TTimer свой поток или нет?
|
|||
|---|---|---|---|
|
#18+
wadman При создании таймера создается окно, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2021, 11:33 |
|
||
|
|

start [/forum/topic.php?fid=58&startmsg=40082689&tid=2037190]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 274ms |
| total: | 548ms |

| 0 / 0 |
