现在位置首页 / 项目实战 /正文

C# winform webbrowser关闭窗体出现异常-当前线程不在单线程单元中

作者: IT小兵 | 2013年9月23日| 热度:℃ | 评论: |参与:

在winform中使用了webbrowser,提交完成数据,后会关闭窗体,

但是出现了错误:

当前线程不在单线程单元中,因此无法实例化 ActiveX 控件解决办法 。一个cid串错误。

这个查了一下,网上很多说是线程安全问题,这里比较全:

参考:

当前线程不在单线程单元中,因此无法实例化 ActiveX 控件解决办法 - winzheng - 博客园

http://www.cnblogs.com/winzheng/archive/2009/05/11/1454328.html

但是我这个不是这样的情况下出现。是单独的窗体调用。

排查了一下,我怀疑是关闭winform的时候,webbrowser还没有释放资源。

所以我尝试这么处理

   try
            {
                NavigateUrl("about:blank");
                int i = 0;
                while (i < 10 )
                {
                    Delay(500);
                    i++;
                }
                this.Close();
                this.Dispose();
            }
            catch (Exception ex)
            {
            }

webbrowser可能在关闭时,还在加载页面。这样,跳转到:about:blank

既可以释放资源,也可以清理一下资源。

然后等待毫秒数。再关闭窗体。

经过测试没有了。

感悟:

所以遇到同样的问题,搜索出来的答案千奇百怪,不一定能解决你的问题。

还是要静下心来,思考你的程序的具体运行环境和较为可能出问题的地方。



转发注明:IT分享 http://www.suchso.com 


点击阅读本文所属分类的更多文章: 项目实战 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询