Тема для формы Windows - PullRequest
       17

Тема для формы Windows

0 голосов
/ 28 октября 2009

Когда я создаю простую форму Windows, она автоматически запускается в новом потоке? Или есть только одна нить для всех форм?

Ответы [ 3 ]

3 голосов
/ 28 октября 2009

Существует одна нить для всех форм.

Фактически, Windows Forms (и большинство оконных технологий), требуют , чтобы все ваши формы и элементы управления были сгенерированы в одном потоке. Если вы попытаетесь использовать элемент управления из другого потока, это вызовет проблему.

Поток пользовательского интерфейса в приложении Windows фактически проводит большую часть времени простоя. Существует очередь сообщений, которая обрабатывается и вызывает события, которые вы обрабатываете. Если вы хотите получить доступ к пользовательскому интерфейсу из другого потока, вам нужно вызвать (используя Control.Invoke) метод, который вы хотите запустить обратно в поток пользовательского интерфейса, или вы получите исключения.

1 голос
/ 28 октября 2009

Если вы не делаете ничего лишнего, все формы совместно используют один и тот же поток пользовательского интерфейса (я полагаю, это то, что вы имеете в виду)

0 голосов
/ 28 октября 2009

Нет, Это только очередь сообщений. формы (окна) выглядят как «многопоточные», но это очередь сообщений / насос сообщений, который обрабатывает сообщения. (так что это 1 поток ...)

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