首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

如何用两个线程,同时让两个label 漂移起来

2012-01-20 
怎么用两个线程,同时让两个label 漂移起来publicvoidChinaHappyBirthday()//中文label{if(InvokeRequired)

怎么用两个线程,同时让两个label 漂移起来
public   void   ChinaHappyBirthday()//中文label
                {
                        if   (InvokeRequired)
                        {
                                Invoke(new   MethodInvoker(ChinaHappyBirthday));
                        }
                        else
                        {
                                while(true)
                                {                                              
                                        if   (label1.Left   >   this.Width)
                                        {
                                                label1.Left   =   0;
                                        }
                                        label1.Left   +=   Rand();
                                        label1.Refresh();
                                        Thread.Sleep(10);
                                }
                        }
                }
                public   void   EnglishHappyBirthday()//英文label
                {
                        if   (InvokeRequired)
                        {
                                Invoke(new   MethodInvoker(EnglishHappyBirthday));
                        }
                        else
                        {
                                while(true)


                                {                                
                                        if   (label2.Left   > =this.Width)
                                        {                                                
                                                label2.Left   =   0;
                                        }
                                        label2.Left   +=   Rand();
                                        label2.Refresh();
                                        Thread.Sleep(10);
                                }      
                        }
                }
=========下面我用了两个线程,使上面的两个label能同时漂移
    private   Thread   pri1;
                private   Thread   pri2;
                private   void   button1_Click(object   sender,   EventArgs   e)
                {
                        pri1   =   new   Thread(new   ThreadStart(ChinaHappyBirthday));
                        pri2   =   new   Thread(new   ThreadStart(EnglishHappyBirthday));
                        pri3   =   new   Thread(new   ThreadStart(txt));
                        pri1.Start();
                        pri2.Start();
                }

此代码的目的是为了让label能横向的循环漂移,我定义了两个label,分别是中文的和英文的,我要用两个线程同时让它漂移起来,但是结果是只有pri1 这个线程不停的移动,pri2这个线程不动,怎么办?




[解决办法]
写进一个线程不就得了
[解决办法]
写进一个函数,用一个线程运行

热点排行