请大侠帮我看看这个异常的问题 搞了很久 就到关键地步了 在线等
using System;  
using System.ComponentModel;  
using System.Collections.Generic;  
using System.Diagnostics;  
using System.Text;  
using System.Net.Sockets;  
using System.Net;  
using System.Windows.Forms;  
using System.Threading;  
namespace WindowsFormsApplication2  
{  
     public partial class Form1 : Form  
     {  
         IPEndPoint server = null;  
         UdpClient uc = null;  
         public Form1()  
         {  
             InitializeComponent();  
         }  
         Thread thread1 = null;  
         private void Form1_Load(object sender, EventArgs e)  
         {  
             try  
             {  
                 IPEndPoint iep = new IPEndPoint(IPAddress.Any, 1000);  
                 IPAddress address = IPAddress.Parse("127.0.0.1");  
                 byte[] a=new byte[]{1,11};  
                 uc = new UdpClient();  
                 server = new IPEndPoint(address, 1000);  
                 uc.Send(a,a.Length,server);  
                 thread1 = new Thread(jieshou);  
                 thread1.Start();  
             }  
             catch  
             {  
                 MessageBox.Show("sdf");  
             }  
         }  
         public void jieshou()  
         {  
             while (true)  
             {  
                 try  
                 {                 
                     byte[] Data = uc.Receive(ref server);  //将获取的远程消息转换成二进制  
                     //throw new Exception("sdf");                                    
                 }  
                 catch  
                 { MessageBox.Show("d"); }  
             }            
         }     
     }  
}  
问题是当执行到 byte[] Data = uc.Receive(ref server);的时候会出现异常,然后抛出之后循环就停止了。当注释掉  byte[] Data = uc.Receive(ref server);  
改成 try  
                 {                 
                     //byte[] Data = uc.Receive(ref server);  //将获取的远程消息转换成二进制  
                     throw new Exception("sdf");                                    
                 }  
后就会不断的循环抛出,不会停止,为什么第一种执行一次就停止 第二种怎么异常都不停止呢?            
------解决方案--------------------你怎么发了两个贴问这个。那我贴过来吧。
与这个语句有关 byte[] Data = uc.Receive(ref server);  
这个语句第一次执行时,抛出了异常,或许也清空了缓冲区,下一次执行时因为没有数据,所以也没有再抛出异常
------解决方案--------------------另外,注意身体,深更半夜的也多少人回答问题
------解决方案--------------------建议你在byte[] Data = uc.Receive(ref server);  语句处设断点,跟踪进去,看看到底运行到哪里出现的异常
------解决方案--------------------这个语句第一次执行时,抛出了异常,或许也清空了缓冲区,下一次执行时因为没有数据,所以也没有再抛出异常
对于这句的理解,我还是不懂,我这个程序的作用是发送一个消息给自己,然后用那个异常进行监听消息,如果那个异常执行一次就停止的话,那就是说这样监听不了,所以我必须明白为什么它会执行一次异常就停止了,还有 要怎样情况下才会不异常   另外谢谢你的关心
------解决方案--------------------How about make a job-managerment. catch exception and re-start the thread?