进程与线程
一个进程只有一个线程(一般而言),进程就是在内存里面开辟一块空间,但不仅仅如此。线程去执行代码。
进程里面默认有个线程。
如何开启一个线程?System.Threading;线程操作的类在这个命名空间下。
创建一个线程对象,并为这个线程对象指定要执行的方法。
private void TestThread(){ };
.......
Thread thread = new Thread(TestThread);
thread.Start();
前台线程
进程里面默认的线程,我们叫做主线程、UI线程。
线程默认(主线程、UI线程)情况下都是前台线程。
要所有的前台线程退出以后,程序才会退出。
线程什么时候结束?该线程执行的方法执行完以后,线程就自动退出。
后台线程
后台线程只要所有的前台线程结束,后台线程就会立即结束。
thread.IsBackground = true; //后台线程。
线程重入以及解决方法
1.微软默认:线程之间是不能随便访问的。
TexBox.CheckForIllegalCrossThreadCalls = false;
关闭控件的跨线程访问。
2.多个线程访问同一资源,可能造成不同步的情况,这个叫做线程重入。
多线程实例:自动摇奖机
委托(委托的本质是个类)(委托的作用在哪里?下面的ThreadStart)
委托关键字 delegate
线程调用带参数的方法
ThreadStart 这是个委托对象,里面自带delegate;
首先,Thread首先利用就是自动生成ThreadStart的代码。
但是这个是不带参数的,利用ThreadStart的可以增加、减少类
带参数(!!!!!!!!!!!!!)
注意一点:在Start的地方输入参数。
传入多个参数,可以利用数组。
GDI常用方法(画图接口)
Graphic 类(画图)
Draw();