首页 新闻 搜索 专区 学院

c#指教一下一段代码,为什么这里要写委托

0
悬赏园豆:5 [已解决问题] 解决于 2013-12-01 19:39

 private void Form1_Load(object sender, EventArgs e)
        {
            System.Threading.Thread P_thread = //创建线程
                new System.Threading.Thread(
                () =>//使用lambda表达式
                {
                    while (true)//无限循环
                    {
                        this.Invoke(//操作窗体线程
                              (MethodInvoker)delegate()//使用匿名方法
                              {
                                  this.Refresh();//刷新窗体
                                  Graphics P_Graphics = //创建绘图对象
                                      CreateGraphics();
                                  P_Graphics.DrawString("系统时间:" +//在窗体中绘出系统时间
                                      DateTime.Now.ToString(
                                      "yyyy年MM月dd日 HH时mm分ss秒"),
                                      new Font("宋体", 15),
                                      Brushes.Blue,
                                      new Point(10, 10));
                              });
                        System.Threading.Thread.Sleep(1000);//线程挂起1秒钟
                    }
                });
            P_thread.IsBackground = true;//将线程设置为后台线程
            P_thread.Start();//线程开始执行

太笼统的主页 太笼统 | 初学一级 | 园豆:4
提问于:2013-12-01 19:31
< >
分享
最佳答案
0

线程本来就需要一个委托作为参数的,所以肯定要写委托的。

至于为什么要用新的线程,那是因为里面有无限循环的语句,不用线程就直接把界面卡死

收获园豆:5
诶碧司 | 小虾三级 |园豆:1912 | 2013-12-01 19:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册