ASP.Net+Android+IO开发S、.Net培训、期待与您交流!
看了黑马的教学视频,才真正了解了多线程的实现过程。
谈到多线程,我们常与之对应的就是单线程。要实现多线程,首先就要给多线程写一个任务(就是一个方法),当我们启动多线程时,就会调用传递过来的委托,委托就会执行相应的方法。
一般情况下,我们实现多线程的步骤如下:
1.编写多线程要执行的方法;
2.引用命名空间System.Threading;
3.实例化一个多线程,并传入所要执行的方法;
4.调用线程里的start方法启动线程。
其实创建线程,用start启动后,就是标记该线程可以被CPU执行。常常看见在窗体中运行一个很长的循环,窗体就不能移动,这是因为单线程时,窗体的自己的线程执行任务去了,当你想拖动窗体时,就没人来执行你这个窗体的任务了。使用多线程后,就是直接标记可被CPU执行,就相当于我从外面找人来完成这个循环的任务。
下面举一个例子:
private void button1_Click(object sender, EventArgs e)
{
Thread td1 = new Thread(Count);
td1.Name = "线程一";
td1.IsBackground = true;
td1.Start();
Thread td2 = new Thread(Count);
td2.Name = "线程二";
td2.IsBackground = true;
td2.Start(); }
protected void Count()
{ int a = 0;
for (int i = 0; i < 2000; i++)
{
a = Convert.ToInt32(label1.Text);
a++;
label1.Text = a.ToString();
Console.WriteLine("a={0} {1}",a.ToString(),Thread.CurrentThread.Name);
}
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text ="0";
}
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! 详细请查看:http://edu.youkuaiyun.com