视频中老师形象的将我们的每个程序比作一个商店而每一个线程就是商店老板请来的一个小工,程序开始时系统会默认的开启一个主线程,此时主线程就相当于商店的老板。当程序启动时主线程就会来执行Main方法中的代码,此时相当于商店有顾客来买东西老板就要去招呼客人了。就在老板招呼顾客的同时老板的儿子突然大便了此时当然得去跟儿子换尿布但是由于此时有顾客在商店老板就不得不去招待顾客只好让儿子继续哭了。老板考虑到以后会发生类似的事情他就去请了一个小工,此时老板请的小工就相当也我们开启的另外一个线程。下次再发生类似的事情,老板就可以要小工去跟儿子换尿布自己接着招呼顾客的。
线程就相当于一个专门用来执行某段代码的程序流。一个C#程序开始于一个单线程,这个单线程是被CLR和操作系统(也称为“主线程”)自动创建的,并具有多线程创建额外的线程。当有需要时可以由主线程创建其他的线程。 线程用System中Thread类来创建, 通过ThreadStart委托来指明方法从哪里开始运行,也就是用委托来指明我创建的这个线程的主要作用。其有两种创建方式:1、Thread firstMode = new Thread(传入一个返回值为void无参数的方法); firstMode.start(); 2、Thread firstMode = new Thread(传入一个返回值为void带参数的方法); firstMode.start(传入的参数); 其中参数可以有一个也可以有几个,当要传入多个参数时就可以定义一个数组或是集合来存放你所要传入的的参数。
线程又分为前台线程与后台线程。我们创建的线程默认都是前台线程,只有所有的前台线程都关闭才能完全的将程序关闭。我们可以通过调用线程的IsBackground属性将一个前台线程设置为后台线程,例如:firstMode.IsBackground = true。只要所有的前台线程都结束那么后台线程也就自动的结束。
以上是我对线程的一点理解,如有不妥之处劳烦大家之处。我们相互学习,共同提高一起向着黑马的大门迈进,谢谢! |