В WinForms почти весь ваш пользовательский интерфейс зависит от потока. Вы должны использовать [STAThread]
, чтобы общие диалоги работали, и вы не можете (безопасно) получить доступ к элементу пользовательского интерфейса из любого потока, отличного от того, который его создал. Из того, что я слышал, из-за того, что именно то, как работают Windows, - дескрипторы окон зависят от потока.
В WPF эти же ограничения были сохранены, потому что в конечном итоге он все еще строился поверх одного и того же Windows API, все еще обрабатывает окна (хотя в основном только для окон верхнего уровня) и т.д. На самом деле WPF даже сделал вещи более ограничительными, потому что вы даже не можете получить доступ к таким вещам, как растровые изображения по потокам.
Теперь наступает WinRT, совершенно новый способ доступа к Windows - новый, чистый сланец. Мы все еще придерживаемся тех же самых старых ограничений на потоки (в частности: только возможность манипулировать элементом управления пользовательского интерфейса из потока, который его создал), или они открыли это?