Таймер win32 принадлежит вызывающему потоку? - PullRequest
1 голос
/ 07 октября 2019

Является ли таймер win32 (созданный SetTimer()) принадлежащим его вызывающим потоком (чтобы вызов TerminateThread() вызывающему потоку разрушил таймер)?

1 Ответ

1 голос
/ 07 октября 2019

Таймер принадлежит потоку, который вызвал SetTimer. При желании он может быть связан с HWND (дескриптором окна), который также имеет схожую привязку к потоку.

Если поток завершается или уничтожается, все таймеры в этом потоке умирают вместе с ним, независимо от того, вызван ли KillTimer. Больше нет насоса сообщений для отправки этих сообщений WM_TIMER, когда умирает владелец потока.

И если таймер связан с HWND, таймер также неявно уничтожается при уничтожении HWND.

Учитывая все это, хорошей идеей будет явный вызов KillTimer, который позволит неявно очистить объект таймера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...