谁帮我解释一下这段代码???
private IPEndPoint ServerEndPoint = null; //定义网络端点
private UdpClient UDP_Server = new UdpClient(); //创建网络服务,也就是UDP的Sockets
private System.Threading.Thread thdUdp; //创建一个线程
public delegate void DataArrivalEventHandler(byte[] Data, IPAddress Ip, int Port); //定义了一个托管方法
public event DataArrivalEventHandler DataArrival; //通过托管理在控件中定义一个事件
private string localHost = "127.0.0.1";
[Browsable(true), Category("Local"), Description("本地IP地址")] //在“属性”窗口中显示localHost属性
public string LocalHost
{
get { return localHost; }
set { localHost = value; }
}
private int localPort = 11000;
[Browsable(true), Category("Local"), Description("本地端口号")] //在“属性”窗口中显示localPort属性
public int LocalPort
{
get { return localPort; }
set { localPort = value; }
}
private bool active = false;
[Browsable(true), Category("Local"), Description("激活监听")] //在“属性”窗口中显示active属性
public bool Active
{
get { return active; }
set //该属性读取值
{
active = value;
if (active) //当值为True时
{
OpenSocket(); //打开监听
}
else
{
CloseSocket(); //关闭监听
}
}
}
----------------------------------------------------------------
public delegate void DataArrivalEventHandler(byte[] Data, IPAddress Ip, int Port); //定义了一个托管方法
public event DataArrivalEventHandler DataArrival; //通过托管理在控件中定义一个事件
这二句是什么意思?用和不用托管方法有什么区别??
------解决方案--------------------
建议你去了解一下委托与事件(算是C#的一个难点)
msdn.microsoft.com/zh-cn/library/17sde2xt(VS.80).aspx
举例:
想了解奥运得金牌情况:
方法1:(轮询)每天爬在电视机前看电视...
方法2:(委托)订购中国移动的手机通知,当有得到金牌时就发短信告诉你(调用你的方法).
说的不一定准确,希望对你有帮助.
------解决方案--------------------
看注释挺有个性,什么定义了一个托管方法,不就是一个委托吗,再定义这个委托的事件
DataArrivalEventHandler这个委托是BeginInvoke这个
方法传过去的最后一个参数然后被IAsyncResult这个接口封装了(好绕口)
dn.EndInvoke(ar);这个是结束异步操作如果有返回值就返回异步操作结果
有空可以看看微软的异步编程模型apm