private void button1_Click(object sender, EventArgs e)   {   Ping p1 = new Ping(); //只是演示,没有做错误处理   PingReply reply = p1.Send(this.textBox1.Text);//阻塞方式 displayReply(reply); //显示结果 } private void displayReply(PingReply reply) //显示结果   {   StringBuilder sbuilder ;   if (reply.Status == IPStatus.Success)   {   sbuilder = new StringBuilder();   sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString ()));   sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));   sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));   sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));   sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));   listBox1.Items.Add(sbuilder.ToString());   }   }[nextpage]   也可以做异步的处理,修改button1_click,并添加PingCompletedCallBack方法   private void button1_Click(object sender, EventArgs e)   {   Ping p1 = new Ping();   p1.PingCompleted += new PingCompletedEventHandler(this.PingCompletedCallBack);//设置PingCompleted事件处理程序   p1.SendAsync(this.textBox1.Text, null);   }   private void PingCompletedCallBack(object sender, PingCompletedEventArgs e)   {   if (e.Cancelled)   {   listBox1.Items.Add("Ping Canncel");   return;   }   if (e.Error != null)   {   listBox1.Items.Add(e.Error.Message);   return;   }   StringBuilder sbuilder;   PingReply reply = e.Reply;   if (reply.Status == IPStatus.Success)   {   sbuilder = new StringBuilder();   sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString()));   sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));   sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));   sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));   sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));   listBox1.Items.Add(sbuilder.ToString());   }   } //csharp/5832