Создание элементов управления в потоке без пользовательского интерфейса

У меня есть своего рода модель плагинов, в которой различные сложные пользовательские элементы управления хранятся в DLL и загружаются и создаются во время выполнения с использованием

<code>Activator.CreateInstanceFrom(dllpath, classname).
</code>

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

Кажется, это работает нормально - пока я не попытаюсь установить какое-либо свойство для любого вложенного элемента управления на одном из этих пользовательских элементов управления, например в обработчике события кнопки, которая выдает исключение перекрестной потоковой обработки. Я действительно понимаю, что мог бы избежать этого, проверяя InvokeRequired каждый раз, когда я получаю доступ к свойству, но мне не нужно беспокоиться об этом при написании кода для пользовательских элементов управления (особенно, поскольку есть и другие, которые пишут эти кусочки кода, которые могут не всегда помню).

Поэтому у меня вопрос: есть ли какой-нибудь безопасный способ сделать то, что я пытаюсь сделать, или как мне лучше всего загружать эти элементы управления в фоновом режиме? Или это в принципе невозможно, и мне нужно придерживаться основного потока для создания элементов управления?

Я надеюсь, что предоставленной мною информации достаточно, чтобы прояснить мою ситуацию; если нет, я был бы рад разработать и предоставить примеры кода.

Ответы на вопрос(3)

Ваш ответ на вопрос