C#语言Thread(线程)

发布时间 2023-04-13 22:04:50作者: 哑ba湖大水怪

进程和线程的区别:

  进程的概念:进程是计算机操作系统中正在运行的程序的实例。通过任务管理器可以查看运行进程。

    前台进程:用户可以看见相应的操作界面,如:浏览器进程等

    后台进程:用户默认是“看不见”操作界面。服务中大部分都是后台进程, 如:杀毒软件后台偷偷的扫描你的硬盘。

  线程的概念:线程是操作系统能够进行运算调度的最小单位。

  进程和线程的关系:线程必须包含在进程内。一个进程中可以包含多个线程。多个线程可以并行执行。(线程是在进程中并行执行的,称为多线程

一般在语言中会把非常耗时的任务,放到另外线程中去执行。线程:主线程、分线程。主线程主要负责程序运行。分线程去执行别的任务(非常耗时)

C#语言中多线程主要表现在:System.Threading命名空间下的Thread类。

1. 实例化线程(分线程)

  方法一: lambda 表达式

    thread1 = new Thread(() => {Console.WriteLine("当前线程的名称;" + Thread.CurrentThread.Name);});

    // 分线程中拿当前分线程,通过Thread.CurrentThread

    thread1.Name = "我的第一个线程1";   //主线程中拿某个分线程,直接通过实例。

  方法二:Thread thread2 = new Thread(doWork);  //doWork为创建的方法

 

  方法三:Thread thread3 = new Thread(new ParameterizedThreadStart(doWork));  //doWork为创建的方法

  方法四:Thread thread4 = new Thread(new ThreadStart(doWork));  ThreadStart不能向线程传参,因为ThreadStart委托是无参数的。

      thread4.Name = "我的第一个线程";

 

2. 启动线程

  thread1.Start();

  //向某个线程中传递参数,通过Start(param) 参数的数据类型是object

  // 需要装箱。string===Object

  thread3.Start("hello thread");