Мы знаем, что невозможно выполнить код, который манипулирует свойствами любого элемента пользовательского интерфейса из любого потока, кроме потока, в котором был создан элемент ... Мой вопрос: почему?
Я помню, что когда мы использовали элементы пользовательского интерфейса COM (в COM / Visual Basic 6.0 дней), все элементы пользовательского интерфейса создавались с использованием COM-классов и совместных классов, которые хранили свои ресурсы, используя модель памяти, называемую Thread- Локальное хранилище (TLS), но, насколько я помню, это требовалось из-за того, что связано со способом построения COM-компонентов и не должно относиться к элементам пользовательского интерфейса .NET. Какова основная причина, почему это ограничение все еще существует?
Это потому, что базовая операционная система все еще использует классы Win32 API на основе COM для всех элементов пользовательского интерфейса, даже тех, которыми манипулируют в управляемом приложении .NET?