运行时遇到了错误。此错误的地址为 0x791f7e06,在线程 0xe24 上。错误代码为 0xc0000005

flashfish111 2014-03-17 04:19:34
运行时遇到了错误。此错误的地址为 0x791f7e06,在线程 0xe24 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。

汗,这是什么问题呀。见鬼。




...全文
8211 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_25121863 2015-10-26
  • 打赏
  • 举报
回复
这个问题搞死我了,后面我发现我的程序里面反复的new了一些东西,只要放在外面new一次就好
一枪尽骚丶魂 2015-03-27
  • 打赏
  • 举报
回复
我也是在线程退出的时候出现的这个问题,烦躁啊
flashfish111 2014-03-20
  • 打赏
  • 举报
回复
flashfish111 2014-03-19
  • 打赏
  • 举报
回复
又安静了
flashfish111 2014-03-18
  • 打赏
  • 举报
回复
引用 7 楼 wyd1520 的回复:
N个线程+1绝对不会假死。你上面是死循环。。。CPU早被你吃光了。
好的,谢谢,我去改下看看。 能再请教下嘛,一个登录窗口,点击按钮弹出业务窗口,如果用ShowDialog()弹出的话,业务窗口只要隐藏或者移出界面,主窗体就会关闭。所以我就改成.Show(); 要不然业务窗口不能隐藏,这里我也是用到 Application.DoEvents(); 这个有没有问题,你说CPU吃光,可我观察CPU情况也是很一般呀。 checkserver.FormClosed += new FormClosedEventHandler(frmA_CloseFrm); checkserver.Show();checkserver.ShowDialog() while (checkserver != null) { Application.DoEvents(); } this.Close(); public void frmA_CloseFrm(object sender, EventArgs e) { checkserver = null; }
本拉灯 2014-03-18
  • 打赏
  • 举报
回复
N个线程+1绝对不会假死。你上面是死循环。。。CPU早被你吃光了。
flashfish111 2014-03-18
  • 打赏
  • 举报
回复
引用 5 楼 wyd1520 的回复:
while (true) { try { if (!Threads[i].IsAlive) { break; } Application.DoEvents(); } catch (Exception ex) { LogHelper.Log("特殊异常:" + ex.ToString()); } } 这样写cpu资源被你吃光了。你即然等线程结速为啥不用AutoEventSet 用个WaitHandler.WaitAll()
我怕窗体会假死我是不懂 线程中全部用try()起来了,异常也应该是线程中catch到了,为什么要跳到这一步来异常,如果不是线程引起的错误,不可能Application.DoEvents();会有问题
本拉灯 2014-03-18
  • 打赏
  • 举报
回复
while (true) { try { if (!Threads[i].IsAlive) { break; } Application.DoEvents(); } catch (Exception ex) { LogHelper.Log("特殊异常:" + ex.ToString()); } } 这样写cpu资源被你吃光了。你即然等线程结速为啥不用AutoEventSet 用个WaitHandler.WaitAll()
flashfish111 2014-03-18
  • 打赏
  • 举报
回复
又来一次,丫的。虽说不频繁,一般运行个1,2天才会出现,但是也是很要命。

flashfish111 2014-03-17
  • 打赏
  • 举报
回复
比如我启动20个线程 我要等待线程结束,然后弹出结束信息。用这种方式不行嘛? 而且我线程中全部用try()catch()起来了,他怎么线程中不提示异常,而跑到主线程中来提示。我也没抛出 for (int i = 0; i < xcnum; i++) { while (true) { try { if (!Threads[i].IsAlive) { break; } Application.DoEvents(); } catch (Exception ex) { LogHelper.Log("特殊异常:" + ex.ToString()); } } }
mjp1234airen4385 2014-03-17
  • 打赏
  • 举报
回复
不能这么用。
md5e 2014-03-17
  • 打赏
  • 举报
回复
线程上的错误所导致

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧