Я столкнулся со следующей задачей, которую не могу разрулить вот уже второй день.
Условие:
Есть приложение А(С# .NET 2.0 WinForm MDI DragnDrop), которое работает с COM объектами COM-приложения В (VС++ 6.0). Объект из приложения В запускает длительный процесс. При этом приложение А замерзает на время выполнения длительного процесса.
Вопрос:
Как запустить выполнение метода с длительным выполнением в фоновом потоке, если при попытке запустить метод из созданного фонового потока замерзают оба потока?
Дополнительные условия:
Атрибут потоковой модели приложения А — STAThread. Если установить MTAThread приложению А, тогда все работает. Но. При установке MTAThread DragnDrop не регистрируется, так как вызов OLE возможен только с установленным STAThread атрибутом.
Любые идеи или компромиссные решения приветствуются.