1 线程最简单的例子:
protected void btn_startwork_Click(object sender, EventArgs e)
{
ThreadStart start = new ThreadStart(test);
Thread thread = new Thread(start);
thread.Start();
Response.Redirect("Test.aspx");//即使跳转到Test.aspx页面 线程依然在执行!
}
public void test()
{
lable1.Text = "开始线程了";
}
2 带1个参数例子:
protected void btn_startwork_Click(object sender, EventArgs e)
{
ParameterizedThreadStart threadStart = new ParameterizedThreadStart(Calculate);//ParameterizedThreadStart可以带Object类型的一个参数 可以是个实体类(User类,可以包含userID,userName,userAge等等)
Thread thread = new Thread(threadStart);
thread.Start(0.9);
}
public void Calculate(object arg)
{
double Diameter = (double)arg;
Label1.Text = (Diameter * Diameter).ToString();
protected void btn_startwork_Click(object sender, EventArgs e)
{
ThreadStart start = new ThreadStart(test);
Thread thread = new Thread(start);
thread.Start();
Response.Redirect("Test.aspx");//即使跳转到Test.aspx页面 线程依然在执行!
}
public void test()
{
lable1.Text = "开始线程了";
}
2 带1个参数例子:
protected void btn_startwork_Click(object sender, EventArgs e)
{
ParameterizedThreadStart threadStart = new ParameterizedThreadStart(Calculate);//ParameterizedThreadStart可以带Object类型的一个参数 可以是个实体类(User类,可以包含userID,userName,userAge等等)
Thread thread = new Thread(threadStart);
thread.Start(0.9);
}
public void Calculate(object arg)
{
double Diameter = (double)arg;
Label1.Text = (Diameter * Diameter).ToString();
}
3 线程实例:
//门诊收入
private void button1_Click(object sender, EventArgs e)
{
lbState.Text = "数据提取中,请稍等……";
Application.DoEvents();
btnMzSr.Enabled = false;
new Thread((ThreadStart)delegate
{
//WriteToFile("jsp_d_mzsf");
newWriteFile("jsp_d_mzsf"); //方法
Invoke((MethodInvoker)delegate
{
btnMzSr.Enabled = true;
lbState.Text = "数据提取完成!";
});
}).Start();
}