В этих терминах да.
По сути, за кулисами Windows GUI находится «петля сообщений», которая представляет собой двустороннюю связь между ОС Windows (которая знает о мышке, клавиатуре и другом оборудовании ввода) и вашей программой (которая не ' Не нужно знать специфику, но нужно реагировать на ввод пользователя в ваше приложение на основе этих устройств ввода). В вашей программе есть поток (обычно основной поток выполнения программы), который поддерживает этот цикл, прослушивая сообщения, поступающие в программу из Windows, а также анализирует и передает сообщения различным элементам управления GUI и другим объектам кода. Этот «поток сообщений GUI» знает и поддерживает ссылки на все дескрипторы окон всех объектов GUI в вашей программе; он должен, потому что, если это не так, он не может передавать им сообщения и не будет прослушивать сообщения от них.
Обычно плохая идея пытаться что-то сделать с экземпляром элемента управления графическим интерфейсом извне потока, подключенного к циклу сообщений. Таким образом, элемент управления или подэлементы управления, принадлежащие элементу управления, могут быть отсоединены от цикла сообщений или вообще никогда не подключаться. «Поток сообщений GUI» больше не знает об этом элементе управления и больше не передает сообщения в него или из него. Эти элементы управления становятся «жуликами»; ни программа, ни Windows не могут заставить элемент управления переместиться, перерисовать или уйти. Единственное, что Windows может сделать в этот момент для «управления» окном, - это закрыть процесс, которому оно принадлежит, и завершить всю вашу программу.
Чтобы избежать этого, элементы управления GUI имеют специальный метод Invoke (и асинхронный двоюродный брат BeginInvoke), предназначенный для использования вне потока обмена сообщениями GUI. Эти методы в основном отправляют сообщение из окна себе через цикл сообщений Windows, который заставляет основной поток GUI выполнять делегат, указанный в вызове Invoke. Таким образом, любые новые объекты GUI, созданные внутри или в результате этого кода, будут известны основному потоку GUI.