进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。 ![图片上传中...] 线程(Thread)是进程中的基本执行单元,是操作系统分配CPU时间的基本单位,一个进程可以包含若干个线程,在进程入口执行的第一个线程被视为这个进程的主线程。在.NET应用程序中,都是以Main()方法作为入口的,当调用此方法时系统就会自动创建一个主线程。线程主要是由CPU寄存器、调用栈和线程本地存储器(Thread Local Storage,TLS)组成的。CPU寄存器主要记录当前所执行线程的状态,调用栈主要用于维护线程所调用到的内存与数据,TLS主要用于存放线程的状态信息。 ![图片上传中...] 多线程的缺点: (1)线程也是程序,所以线程需要占用内存,线程越多,占用内存也越多。 (2)多线程需要协调和管理,所以需要占用CPU时间以便跟踪线程。 (3)线程之间对共享资源的访问会相互影响,必须解决争用共享资源的问题。 (4)线程太多会导致控制太复杂,最终可能造成很多程序缺陷。 常规程序: 当启动一个可执行程序时,将创建一个主线程。在默认的情况下,C#程序具有一个线程,此线程执行程序中以Main方法开始和结束的代码,Main()方法直接或间接执行的每一个命令都有默认线程(主线程)执行,当Main()方法返回时此线程也将终止。 多线程程序: 一个进程可以创建一个或多个线程以执行与该进程关联的部分程序代码。在C#中,线程是使用Thread类处理的,该类在System.Threading命名空间中。使用Thread类创建线程时,只需要提供线程入口,线程入口告诉程序让这个线程做什么。通过实例化一个Thread类的对象就可以创建一个线程。创建新的Thread对象时,将创建新的托管线程。 举例:运行实例方法
class Program
{
static void Main(string[] args)
{
//创建ThreadTest类的一个实例
ThreadTest test=new ThreadTest();
//调用test实例的MyThread方法
Thread thread = new Thread(new ThreadStart(test.MyThread));
//启动线程
thread.Start();
Console.ReadKey();
}
}

class ThreadTest
{
public void MyThread()
{
Console.WriteLine("这是一个实例方法");
}
}