5 .net resharper nunit c++-cli appdomain
我正在编写一个C#单元测试来测试涉及线程的C++/CLI功能.
C++/CLI代码实现了DirectShow过滤器,即用于渲染电影的Windows API.这样我就可以创建DirectShow对象,我告诉它通过我的C++/CLI过滤器运行AVI,等待渲染完成,然后退出.我的过滤器有一个回调函数,可以将视频帧提供给C#进行处理.因此,DirectShow可以创建自己的线程并从该线程调用我的COM对象.
现在,这些东西在我正常运行我的代码时起作用,但是当从Resharper运行单元测试时,它失败并显示错误"无法通过AppDomains传递GCHandle".
出现问题的是Resharper在其testrunner中使用AppDomains,而DirectShow线程在某种程度上与此appdomain无关.
那么我如何从Resharper进行这项测试呢?是否有NUnit/Resharper设置来控制是否使用appdomains?我能以某种方式告诉CLR线程与特定的appdomain相关联吗?你知道其他任何务实的解决方法吗?
TIA Jan
小智 5
我设法让它使用http://www.lenholgate.com/archives/000856.html中描述的过程
这描述了如何在托管类中创建一个非托管函数指针.当您调用此函数指针时,您将进入最初创建对象的托管应用程序域.这修复了我的appdomain错误.
| 归档时间: |
|
| 查看次数: |
3572 次 |
| 最近记录: |