C#-多线程的使用Thread
首先是概念,什么是线程?
线程是操作系统分配CPU时间的基本单元,在一个进程中可以有多个线程同时执行代码。
谈一谈什么是进程?
简单的说,一个正在运行的应用程序可以视为一个进程,进程间相互独立,资源不共享,一个进程的运行失败不会影响另一个进程的运行,一个进程可以启动多个线程。
进程入口执行的第一个线程被视为主线程。在.Net应用程序中,Main方法作为入口函数,被调用时会启动一个主线程。
在任务管理器中可以看到进程和线程的运行数量
多线程:在宏观角度来看是多个线程并发执行。从微观角度来看,同一时间只能有一个线程执行。
线程的创建(Thread)
using System.Threading; Thread thread=new Thread(ThreadTest);//创建无参数线程 Thread thread2=new Thread(ThreadTest2);//创建有参数线程 thread.Start(); //启动线程 thread2.Start("aaa"); //启动有参线程 public void ThreadTest() { return; } //注意:参数的类型必须是Object 否则无法作为delegate成为Theard的参数 public void ThreadTest(Object obj) { return; }
同一个线程不可以两次调用start,会抛出异常
根据线程的生命周期来看,只有New状态的Thread才可以调用Start方法,如果已经启动,那么此线程就不是New状态了,而是Running状态
报错提醒:No overload for 'method' matches delegate 'delegate'
调用的delegate的参数不是Object类型