我正在开发一个C#Web客户端应用程序,它从Web服务器接收内容,并在成功验证后使用浏览器对象显示它。理想情况下,当退出应用程序并且需要取消订阅网络连接时,我们应该调用Unadvise(cookie)
的方法IConnectionPoint
。但是当抛出任何Web异常并且需要关闭应用程序时,应用程序没有响应,并且无法退出。当我评论方法Unadvise(cookie)
时,它正常工作并且应用程序正在成功退出。
有没有办法在不评论Unadvise(cookie)
的情况下解决问题?
答案 0 :(得分:0)
我认为你可以使用多线程 - 隔离线程进行unadvise调用,你可以在超时时终止它。
答案 1 :(得分:0)
这可能是公寓的问题。我在这里猜测但是如果实现IConnectionPoint
的对象在STA中并且想要回调代码实现的另一个接口并且您的代码不处理消息循环(即,如果您的线程在MTA中是.NET 2.0和转发的默认设置)然后回调到您的代码挂起。
根据代码的线程模型和您使用的对象,您可以尝试将STAThread
应用于主方法。