在关闭串口时,程序执行到serialPort1.Close()后无响应,各位大侠帮忙看看代码    class ReadFile
    {        private byte[] ReceiveBuf;
        private ushort ReceiveBufLen = 0;
        private bool ReceiveDataOK = false;        private SerialPort serialPort1;
        /* 接收数据 */
        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            int n;
            n = serialPort1.BytesToRead;
            if (n > 0)
            {
                if (n > 1000)  n = 1000;
                ReceiveBuf = new byte[n];
                ReceiveBufLen = (ushort)serialPort1.Read(ReceiveBuf, 0, n);
                if (ReceiveBufLen >= 13)
                {
                    if ((ReceiveBuf[0] == 0x53) && (ReceiveBuf[1] == 0x48) && (ReceiveBuf[2] == 0x54) )
                    {
                        ReceiveDataOK  = true;
                    }
                }
            }
        }
        /* 构造函数 */
        public ReadFile()
        {
            serialPort1 = new SerialPort();
            serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
        }
        /* 析构函数 */
        ~ReadFile()
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Close(); 
            }
        }
    }