问一个多线程的问题
情况是这样的,我在窗体上放了一个label 希望在一个复杂的操作结束前,把它显示出来。 有其他的办法能实现,但是想试试多线程。
但是实际的运行结果t1 线程并没有先执行,还是等到主线程结束后才执行。
但是我加了 join啊,join不是优先么。
using System;
using System.Windows.Forms;
using System.Threading;
namespace WinFormThread
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
Thread T1 = new Thread(Showwait);
T1.Start();
T1.Join();
while (i < 10000)
{
i++;
textBox1.Text = i.ToString();
textBox1.Refresh();
}
}
public delegate void ShowwaitDelegate();
public void Showwait()
{
if (this.labTest.InvokeRequired)
{
ShowwaitDelegate showwaitDelegate = new ShowwaitDelegate(Showwait);
this.BeginInvoke(showwaitDelegate);
}
else
{
labTest.Visible = true;
labText.Refresh();
}
}
}
}