Теперь, к сожалению, из-за того, что WinCE Usb Device Arrival / Removal устройства выставляет себя через WindowsMessages, я должен убедиться, что определенный (не-UI) компонент не создан в фоновом потоке. Я хотел бы подтвердить это с помощью исключения, но мне не хватает кода для подтверждения.
Этот компонент создает MessageWindow * и использует его для получения поступивших / удаленных сообщений usb. Проблема в том, что если кто-то создаст этот компонент в фоновом потоке (не обязательно; IsBackground = true), когда поток выйдет из окна, он будет уничтожен.
Есть идеи?
* в качестве отступления я все еще не знаю, почему Form не наследуется от этого класса
Обновление
Я думаю, что моя версия 1 была не очень ясной. Так что это v2.
Когда вы создаете MessageWindow или форму для этого вопроса в потоке, когда этот поток выходит из окна, форма / форма уничтожается.
Мой компонент создает «скрытое» окно сообщения для перехвата некоторых важных событий, поэтому я не хочу, чтобы оно было уничтожено. Поэтому я должен каким-то образом убедиться, что код, который создает форму, выполняется в потоке «Main UI».
Если возможно, я бы хотел избежать ссылки на «основную» форму этого компонента, так как он (архитектурно говоря) должен находиться в нескольких милях от пользовательского интерфейса.
Обновление
Перенос вопроса журнала в отдельную Q.