老师刚讲来了一个实例,没听懂,那位高手能给我讲一下,谢谢
public partial class 线程委托 : Form
{
public 线程委托()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DeleM m = new DeleM();
My me = new My();
Thread thread = m.CreateThread("bery", me.Message);
thread.Start();
}
}
public class DeleM
{
//声明委托
public delegate void DelegateM(string name);
private class Del
{
public string name;
//创建一个DelegateM类型的委托
public DelegateM start;
public void Work()
{
start(name);
}
}
//创建线程
public Thread CreateThread(string name,DelegateM start)
{
Del de=new Del();
de.name=name;
de.start = start;
Thread t=new Thread(de.Work);
return t;
}
}
public class My
{
public void Message(string name)
{
MessageBox.Show(name);
}
}
..这个实在没什么可以讲的!!自己动手断点调试 不懂委托可以自己在博客园搜索下相关文章!
我推荐给你一个:
http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.html
关键是,你这里的命名方式太不好了。
委托,就是一个指针,泛指具有相同函数签名的一类方法
你可以将其设置成为任何的具有相同的签名地方法,而获得灵活性
public partial class 线程委托 : Form
{
public 线程委托()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DeleM m = new DeleM();
My me = new My();
//这里,将me.Message这个方法,赋值给DeleM类的Start委托
Thread thread = m.CreateThread("bery", me.Message);
thread.Start();
}
}
public class DeleM
{
//声明委托
public delegate void DelegateM(string name);
private class Del
{
public string name;
//创建一个DelegateM类型的委托
public DelegateM start;
public void Work()
{
start(name);
}
}
//创建线程
public Thread CreateThread(string name,DelegateM start)
{
Del de=new Del();
de.name=name;
//这里赋值
de.start = start;
Thread t=new Thread(de.Work);
return t;
}
}
public class My
{
// 在线程真正调用的方法。
public void Message(string name)
{
MessageBox.Show(name);
}
}