- Thread步骤
实例化Thread类,并传入一个指向线程所要运行方法的委托。(这时候这个线程已经产生,但是还没有运行)
调用Thread实例的Start方法,标记该线程可以被CPU执行了,但具体执行时间由CPU决定。
- 前台线程和后台线程区别
前台线程:只有所有的前台线程都关闭才能完成程序关闭。
后台线程:只要所有的前台线程结束,后台线程自动结束。
- Thread常用方法
- Start()启动线程(告诉CPU 我可以被执行了,具体什么时候执行,由CPU决定)
- Abort()终止线程 终止完成之后不能再Start()
- Thread.Sleep(1) 静态方法,可以使当前线程停止一段时间运行
- Name线程名
- Thread.CurrentThread获得当前的线程引用
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading; 9 using System.Threading.Tasks; 10 using System.Windows.Forms; 11 12 namespace test2 13 { 14 public partial class Form1 : Form 15 { 16 public Form1() 17 { 18 InitializeComponent(); 19 } 20 Thread th;//实例一个线程 21 private void button1_Click(object sender, EventArgs e) 22 { 23 th = new Thread(test); 24 th.IsBackground=true ;//后台线程,这样在进程结束后,线程自动结束 25 th.Start(); 26 } 27 private void test() 28 { 29 for (int i = 0; i < 10000; i++) 30 { 31 textBox1.Text = i.ToString(); 32 } 33 } 34 35 private void Form1_Load(object sender, EventArgs e) 36 { 37 Control.CheckForIllegalCrossThreadCalls = false; 38 } 39 40 private void Form1_FormClosing(object sender, FormClosingEventArgs e) 41 { 42 if(th!=null)//如果线程在窗口关闭时还没有结束,则终止线程 43 { 44 th.Abort(); 45 } 46 } 47 48 49 } 50 }
以上是在VS2012的.net4.5版本的Winform下测试的,在WPF下测试待续。。。。
时间: 2024-10-07 18:08:30