Окно: графический элемент в том же потоке (STA) - PullRequest
0 голосов
/ 16 сентября 2011

Почему в Windows графический элемент (например, кнопка в Winform) доступен только из потока, который его создал?

1 Ответ

2 голосов
/ 16 сентября 2011

Это связано с тем, что большинство собственных оконных API, таких как Windows API, имеют встроенную привязку потоков, чтобы обеспечить правильную работу сообщений, так как «сообщения» (например, события ввода) обрабатываются в очередив пределах одного потока (т. е. насос сообщений).

Как таковые, графические элементы, обертывающие эту функциональность, такие как Windows Forms, наследуют это ограничение от своего основного API.

Тем не менее, некоторые рамки не ограничивают вас таким образом.Например, WPF позволяет примитивам, связанным с данными, переходить из фоновых потоков, а сборка 4.5 даже позволяет изменять элементы внутри коллекций из фоновых потоков.Требования к синхронизации потоков обрабатываются внутри.

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