Я пишу модульный тест на C # для тестирования функциональности C ++ / CLI, включающей потоки.
Код C ++ / CLI реализует фильтр DirectShow, Windows API для рендеринга фильмов. Это работает таким образом, что я создаю объекты DirectShow, я говорю ему, чтобы он запускал AVI через мои фильтры C ++ / CLI, ждал, пока рендеринг был сделан, и затем завершал работу. Мой фильтр имеет обратный вызов, который передает видеокадры в C # для обработки. DirectShow работает таким образом, что создает собственный поток и вызывает мои COM-объекты из этого потока.
Теперь эта штука работает, когда я нормально запускаю свой код, но при запуске модульного теста из Resharper происходит сбой с ошибкой «Невозможно передать GCHandle через домены приложений».
Что кажется неправильным, так это то, что Resharper использует AppDomains в своем тестовом прогоне, а поток DirectShow каким-то образом не связан с этим доменом приложения.
Так как мне заставить этот тест работать с Resharper? Есть ли настройка NUnit / Resharper для контроля использования доменов приложений? Могу ли я как-то сообщить CLR, что поток связан с конкретным доменом приложения? Знаете ли вы какие-либо другие прагматические обходные пути?
TIA Jan