Многопоточность в таймере Windows Forms работает иначе, чем в многопоточных таймерах общего назначения. 1
В многопоточных таймерах для обслуживания множества таймеров используется пул потоков. 12 Это означает, что метод обратного вызова или событие Elapsed может запускаться в другом потоке каждый раз, когда оно вызывается. 2 При этом обратные вызовы или обработчики событий должны быть потокобезопасными. 2
В таймере Windows Forms для генерации событий таймера используется механизм обмена сообщениями нижележащей модели пользовательского интерфейса. 1 Это означает, что событие Tick всегда сработает в том же потоке, где изначально был создан таймер. 1 В обычном приложении это тот же поток, который используется для обслуживания всего интерфейса пользователя (кнопочки, галочки, окна вывода текста и т. п.). 1