多线程可以让一个程序“同时”处理多个事情。
后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况
创建线程:
1:初始化
Threadthread=newThread(ThreadWorkFun);//ThreadWorkFun是一个委托2:
newThread(()=>{Console.WriteLine("ok");}).start();开启线程:
thread.Start();一个具体的例子:
//任何代码都执行在线程中的,当前main方法执行在主线程中,(也就是默认线程)staticvoidMain(string[]args){//创建一个线程,执行当然线程的执行入口ThreadWorkThreadthread=newThread(ThreadWork);thread.Start();//告诉线程你可以调度我了Console.WriteLine("==============结束");Console.ReadKey();}staticvoidThreadWork(){for(inti=0;i<10;i++){Console.WriteLine(i);}}结果:结果不确定,ThreadWorkFun什么时候执行,由操作系统决定,
注意:当线程指向的方法体执行完成的时候就自动销毁了
Thread的常用属性和方法
GetDomain():返回当前线程正在其中运行的当前域。
Join:线程等待
thread.join();//哪个线程执行当前代码的线程等待这个线程执行完成
IsBackground:获取或设置一个值,该值指示某个线程是否为后台线程,值默认是false:前台线程:只有所有的前台线程都关闭才能完成程序关闭。后台线程:只要所有的前台线程结束,后台线程自动结束
多线程实现的摇奖机
namespace摇奖器{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();InitLabel();InitName();}publicLabellabel=newLabel();publicDictionary