46
Общий раздел / Модель STA и User Interface
« : Июль 12, 2013, 08:25:02 am »
Один из архитекторов WPF, Крис Андерсон, писал:
Т. к. яни хрена не знаю не обладаю широким кругозором, то вопрос такой: а кто нибудь "в мировом масштабе" ушел от STA в UI?
Цитировать
В самом начале разработки WPF мы задались целью устранить зависимость от модели с однопотоковым контейнером (STA). Для многих элементов управления ActiveX и других служб на основе COM необходима именно потоковая модель STA, требующая, чтобы в каждый момент времени код компонента исполнялся только в одном потоке, причем всегда одном и том же. В настоящее время почти все пользовательские интерфейсы в Windows работают в предположении модели STA.
Проблема STA заключается в том, что все объекты привязаны к единственному потоку и не могут переместиться ни в какой другой. Требование о том, чтобы некий фрагмент кода исполнялся одним потоком, – это очень эффективное упрощение, но раз и навсегда привязывать исполнение к единственному потоку, – пожалуй, чересчур. Увы, когда версия «Longhorn» превратилась в Vista, мы осознали, что для того, чтобы WPF могла работать с существующими службами (буфер обмена, Internet Explorer и т. д.), нам придется поддержать STA. Поэтому мы решили создать одну потоковую модель, а не поддерживать несколько.
Поэтому, к моему величайшему сожалению, я вынужден сообщить, что WPF требует потоковой модели STA.
Т. к. я