手頭上有一個程序。form樣式是Mdi窗體的。。。在有幾個MDI子窗體裡面,使用了讀取com口的數據,com口連接了電子磅的。讀取數據這些一切都正常。
就是現在有個問題就是。我在點擊MDI子窗體右上角的那個關閉的那個xx符號的時候。我的程序就死掉了。只能通過結束進程來關閉程序。但是電子磅端口還是能正常關閉,唯獨就是我的程序卡死在那裡了。下面這個圖片。原版右上角的那個小xx不見了
這張是正常情況的效果:
http://ys-c.ys168.com/?QQ截图未命名.jpg_4s7bsl7d7ejs7bsl0cprooll0co5bsr5bi5bksll0cm7bu0u12f03za
原因就是在關閉電子磅的時候程序卡死了。我的程序上對電子磅端口都有釋放的。端口這些都有關閉代碼的。用的是serialPort這個控件。誰知道這個是怎么回事。我的關閉代碼如下。
int i = Environment.TickCount;
while (Environment.TickCount - i < 2000 && true) Application.DoEvents();
this.serialPort1.Close();//现在没有死锁了,关闭串口
this.Dispose();
單獨寫的一個方法,在子窗體的formclosing()函數中調用