我在AppDomains上遇到很多麻烦。我目前有一个包含摄像头控件的AppDomain,并且我试图从这个辅助AppDomain引发的事件(就像正在拍摄的照片)回到主程序。一切似乎都设置正确(事件已注册,函数将跨域边界运行)但当我尝试调用时,没有任何反应。我能找到的关于这个主题的一切都涉及到提出的异常,而不是根本没有发生任何事情。
我不知道我能解释多少比这更好,所以我制作了一个(非常简单的)图表,并且可以发布任何必要的代码。
http://a.imageshack.us/img832/8205/cameradiagram.png
断点在辅助AppDomain内的OnPictureUpdated.Invoke(pic);
部分触发,但没有任何内容(在CameraContainer
内或在主应用程序中引发。我在调用事件时进行空检查,我只是没有把它放在图表中。
答案 0 :(得分:5)
+1问题中的努力。
我认为这可能只是因为您的CameraContainer
不是MarshalByRefObject
。因为它附加到事件中,所以AppDomain
包含CameraManager
的{{1}}实际上需要在引发事件时回调到主AppDomain
。