对话框是在辅助线程弹出来的,经过断点调试,确确实实是执行MessageBox.Show("kkkk",""),程序就死了。是真真正正的死(没响应),不是什么没点对话框,对话框也没看到,注释掉那句MessageBox.Show("kkkk",""),就不会死了。但偶尔又能正常运行。不知大家有没遇到这种问题。

解决方案 »

  1.   

    Thread.Event()  可以试试
      

  2.   

    代码比较长,贴起来不方便。
    辅助线程的代码:
    。(此处一大段)
    {
         MessageBox.Show("发送成功","")。//1
    }//2单步执行能到标为1的那句,按F10继续就死了,标为2的末括号到达不了。
    注释掉对话框就行了。
      

  3.   

    可能是主线程被阻塞了,主线程是不是Join了其他线程,而那个线程还未结束。
    如果哪个其他线程就是这个辅助线程,那么MessageBox.Show就造成死锁了。
      

  4.   

    我也考虑过这样,不过阻塞的现象是不一样的,程序是不死掉的,不会“没响应”,也能看到对话框。问题是我现在的是程序真死了,还看不到对话框。并且断点试过,Join没执行。
    这问题真太奇怪了。
      

  5.   

    问题解决了,就是封送提示信息到UI线程处理。但始终有迷惑,明明UI线程没被阻塞,原来却会卡死。