//读数据接收回调函数 public void ReceiveCallback(IAsyncResult iar) { UdpState udpState = iar.AsyncState as UdpState; if (iar.IsCompleted) { Byte[] receiveBytes = udpState.udpClient.EndReceive(iar, ref udpReceiveState.ipEndPoint); if (receiveBytes.Length >= 44) // 读数据返回 { DataForm mainform = g_em as DataForm; if (bUpdateFirst == true) { mi = new MyInvoke(UpdateForm); bUpdateFirst = false; } if (mainform.InvokeRequired) { mainform.BeginInvoke(mi, receiveBytes); //mainform.BeginInvoke((MethodInvoker)(() => //{ // string strData = ""; // DataForm mainForm = g_em as DataForm; // strData = ""; // for (int n = 0; n < receiveBytes.Length; n++) // strData = strData + " " + (receiveBytes[n]).ToString("X2"); // mainForm.lstData.Items.Insert(0, strData); // strData = DateTime.Now.ToString("HH:mm:ss "); // mainForm.lstData.Items.Insert(0, strData); // Console.WriteLine(strData); //})); } Console.WriteLine(); } else if (receiveBytes.Length >= 10) // 写数据返回 { readWriteType = ReadWriteType.READ_AGV_PLC; ////恢复为读命令 } } }