各位老大:
       小弟做了个多线程的列子,准备在load事件中调用,结果只执行了一个方法就停止了,窗体也没有显示出来?请各位老大指教....源码如下:
 public enum Quantity 
        {
            Header = 0x05, //头命令
            MastServers = 0x10, //通信方向主---》从
            ServesMast = 0x01, //通信方向从---》主
            MachineNo=0x00, //机器号
        }        public Form1()
        {
            
            InitializeComponent();
        }        #region 公共代码        public void ExecuteCommond(int comStatus,int dateCount) 
        {
            port = new SerialPort(conName, 9600, Parity.Even, 8, StopBits.One);            if (port.IsOpen == false)
            {
                port.Open();
            }            //获得校验位,是5个参数的总和
            int CheckSum =Convert.ToInt32(Quantity.Header) +Convert.ToInt32( Quantity.MastServers) + 
                Convert.ToInt32(Quantity.MachineNo) + Convert.ToInt32(comStatus )+ Convert.ToInt32(dateCount);             //执行命令
            char[] vales = { Convert.ToChar(Quantity.Header), Convert.ToChar(Quantity.MastServers),
                             Convert.ToChar(Quantity.MachineNo),Convert.ToChar(comStatus),
                             Convert.ToChar(dateCount), Convert.ToChar(CheckSum) };
            //把命令写入串口,执行
            port.Write(vales, 0, vales.Length);            int bytes = 0;
            while (bytes < 5)
            {
                bytes = port.BytesToRead;
            }
            byte[] buffer = new byte[bytes];            port.Read(buffer, 0, bytes);
            switch (comStatus)
            {
                case 0x11:
                    switch (buffer[4])
                    {
                        case 0:
                            MessageBox.Show("出币器正常");
                            break;
                        case 1:
                            MessageBox.Show("硬币不足");
                            break;
                        case 2:
                            MessageBox.Show(" 缺币");
                            break;
                        case 3:
                            MessageBox.Show("菱镜光电感知器故障");
                            break;
                        case 4:
                            MessageBox.Show("通道光电感知器故障");
                            break;
                        case 5:
                            MessageBox.Show("马达正在忙中");
                            break;
                    }
                    break;
                case 0x13:
                    switch (buffer[4])
                    {
                        case 0:
                            MessageBox.Show("硬币数量不多");
                            break;
                        case 1:
                            MessageBox.Show("没有硬币了");
                            break;
                    }
                    break;
            }            port.Close();

  public void SelectStatus()  //查询状态
        {
            int cmdStatus = 0x11;
            int dateCount = 0x00;
            this.ExecuteCommond(cmdStatus, dateCount);
        }        public void SelectCoinCount()  //查询硬币的数量
        {
            int cmdStatus = 0x13;
            int dateCount = 0x00;
            this.ExecuteCommond(cmdStatus, dateCount);
        }Load事件中调用代码如下: 
Thread threads = new Thread(new ThreadStart(this.SelectCoinCount));
            threads.Start();            Thread.Sleep(1000);
            
            Thread sutatus = new Thread(new ThreadStart(this.SelectStatus));
            sutatus.Start();
各位请踊跃发言啊