首页 新闻 会员 周边 捐助

谁能帮我加点注释

0
悬赏园豆:50 [已关闭问题]

老师刚讲来了一个实例,没听懂,那位高手能给我讲一下,谢谢

    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);
        }
    }

 

百利的主页 百利 | 菜鸟二级 | 园豆:205
提问于:2009-03-20 15:36
< >
分享
其他回答(2)
0

..这个实在没什么可以讲的!!自己动手断点调试 不懂委托可以自己在博客园搜索下相关文章!

我推荐给你一个:

http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.html

Allie | 园豆:707 (小虾三级) | 2009-03-20 16:26
0
子夜星辰 | 园豆:1613 (小虾三级) | 2009-03-20 17:02
0

关键是,你这里的命名方式太不好了。

委托,就是一个指针,泛指具有相同函数签名的一类方法

 

你可以将其设置成为任何的具有相同的签名地方法,而获得灵活性

 

 

 

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);
        }
    }

 

llj098 | 园豆:825 (小虾三级) | 2009-03-23 11:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册