我对Windows中的OpenFileDialog有问题(如果在控制台应用程序中使用is、Windows或wpf) (C#)并不重要。
我有一个带有按钮的小测试项目,当按下该按钮时,将要求用户选择一个图像(使用OpenFileDialog)并将其路径发送到进程方法。流程方法使用c++本机代码,并使用c++ cli (CLR)进行访问。此方法向web服务发送请求并等待响应( web服务是本地的,因此响应是快速的)。
问题是:如果我按2次按钮(选择一个图像+处理,在它完成后我处理另一个图像),第三次窗口将不会显示,它会被卡在ShowDialog。
如果我从WPF运行它,它会给出以下错误:
DisconnectedContext发生消息:托管调试助手'DisconnectedContext‘检测到'd:\Project\WpfApplication1.vshost.exe’中存在问题。 附加信息:此RuntimeCallableWrapper的转换到COM上下文0x1b09d5d0失败,出现以下错误:被调用的对象已与其客户端断开连接。( HRESULT: 0x80010108 (RPC_E_DISCONNECTED)例外)。这通常是因为创建此RuntimeCallableWrapper的COM上下文0x1b09d5d0已断开连接,或者它正在忙着做其他事情,无法处理上下文转换。将不使用代理为COM组件上的请求提供服务,并且将直接调用COM组件。这可能会导致损坏或数据丢失。为了避免此问题,请确保所有COM上下文/单元/线程都保持活动状态,并可用于上下文转换,直到应用程序完全使用表示它们内部的COM组件的RuntimeCallableWrappers完成为止。
有什么办法解决这件事或它的意义吗?
发布于 2015-12-16 14:26:37
我发现了这个问题(不是来自webservice通信):在我的本机代码中,我没有初始化COM,但是.NET UI需要COM来启动和运行。
因此,我所要做的就是从我的本地代码中删除COM的统一化。
https://stackoverflow.com/questions/34289375
复制相似问题