怎么用两个线程,同时让两个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这个线程不动,怎么办?
[解决办法]
写进一个线程不就得了
[解决办法]
写进一个函数,用一个线程运行