日期:2014-05-18  浏览次数:20966 次

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

------解决方案--------------------
没见过你的程序,但有个法子管用,那就是用委托传到主线程去显示。另外辅助线程本身是UI线程时,这样显示肯定没问题。
------解决方案--------------------
可能是主线程被阻塞了,主线程是不是Join了其他线程,而那个线程还未结束。
如果哪个其他线程就是这个辅助线程,那么MessageBox.Show就造成死锁了。