如下面代码所示,这个委托是不是相当于建立了一个后台子线程?
delegate int ChangeColorDelegate();
........
ChangeColorDelegate d1 = ChangeColor;
IAsyncResult a1 = d1.BeginInvoke(null, null);
....... public int ChangeColor()
{
.
.
return 1;
}
执行好后,要手动关闭这个委托吗,还是它自己自动关闭?
delegate int ChangeColorDelegate();
........
ChangeColorDelegate d1 = ChangeColor;
IAsyncResult a1 = d1.BeginInvoke(null, null);
....... public int ChangeColor()
{
.
.
return 1;
}
执行好后,要手动关闭这个委托吗,还是它自己自动关闭?
28.简单委托示例.
public delegate void test(string t1); public void t1(string p1)
{
p1 = "t1";
Response.Write(p1);
Response.Write("\r\n");
}
public void t2(string p2)
{
p2 = "t2";
Response.Write(p2);
}
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
//声明
test delegateOjb;
//关联方法
delegateOjb = t1;
delegateOjb += t2;
//需传参才可调用.
delegateOjb("begin");
}委托实际上据我理解有两个用处:
1.将方法当作参数来调用。
2.类似于c++里面的指针,在调用c++写的dll文件里的方法时很好用,可以准确地指向内存中的地址。