public void HandleMessage(RReadyCode message) { if (isOrder)//发起方 { if (!message.isReady) { ShowMsg("发起远程听诊失败(请确认对方已连接听诊器)"); Invoke(new MethodInvoker(() => { btnPresss.Enabled = false; })); } else { ShowMsg("对方设备就绪,可以发起听诊了"); //ShowMsg("远程听诊进行中"); Invoke(new MethodInvoker(() => { btnPresss.Enabled = true; })); } } else { if (isConnect()) { Thread thread = new Thread(() => { //Thread.Sleep(200); SuperSocket.Send(new RStartAudioCode()); Current.StartAudioInput(); timer.Start(); Invoke(new MethodInvoker(() => { gifBox1.StartAnimate(); //processBarEx1.Visible = true; })); //Thread.Sleep(200); while (!isStop) { byte[] packet = new byte[128]; int bytesRead = Current.AudioInputStream.Read(packet, 0, packet.Length); if (bytesRead <= 0) { Thread.Sleep(100); continue; } var code = new RTransAudioCode(); memoryStream.Write(packet, 0, bytesRead); code.Bytes = packet.Take(bytesRead).ToArray(); SuperSocket.Send(code); Thread.Sleep(1); } Current.StopAudioInput(); }); thread.Start(); } else { SuperSocket.Send(new RReadyCode() { isReady = false }); } } }