线程关键字 Thread
/// 计算机概念
进程:一个程序在服务器上运行时,使用的全部计算资源,起名叫进程
线程:线程是程序执行的最小单位,进程在执行任何一个操作或者响应,都是由线程完成的,
执行过程中,使用到全部计算资源的合集,就叫线程
进程包含线程,线程一定属于进程,进程和线程之间1VN
多线程:计算机里面,一个进程里面有多个执行流并发执行
.Net平台,System.Threading
Thread是.Net封装的一个类,用来对应计算机里面的线程
Thread.CurrentThread.ManagedThreadId当前线程的Id--id是.NET平台起名的
下面写个简单的demo感受一下!
Thread thread; //声明线程
private void button1_Click(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(Run)); //线程调用的方法
thread.Start();
}
void Run()
{
for (int i = 0; i < 1000; i++)
{
Thread.Sleep(500); //休眠0.5秒
if (this.InvokeRequired) //如果是当前创建的线程
{
//实例化委托
delegate_UpdateLable delegate_UpdateLable = new delegate_UpdateLable(UpdateShow);
this.BeginInvoke(delegate_UpdateLable, i.ToString()); //当前创建的线程异步调用委托
//this.Invoke(delegate_UpdateLable, i.ToString()); //当前创建的线程调用委托
// this.Invoke(new Action(delegate ()
// {
// label1.Text = i.ToString();
}));
//以上处理方法都不会阻塞线程!,更多是时候都会用到的是线程异步
}
else
{
label1.Text = i.ToString();
}
}
}
delegate void delegate_UpdateLable(string str);
void UpdateShow(string strtext)
{
label1.Text = strtext;
}
private void button2_Click(object sender, EventArgs e)
{
thread.Abort(); //终止线程
}
private void button3_Click(object sender, EventArgs e)
{
thread.Suspend(); //挂起
}
private void button4_Click(object sender, EventArgs e)
{
thread.Resume(); //恢复
}
以上是比较的老的写法