C#语言Thread(线程)
进程和线程的区别:
进程的概念:进程是计算机操作系统中正在运行的程序的实例。通过任务管理器可以查看运行进程。
前台进程:用户可以看见相应的操作界面,如:浏览器进程等
后台进程:用户默认是“看不见”操作界面。服务中大部分都是后台进程, 如:杀毒软件后台偷偷的扫描你的硬盘。
线程的概念:线程是操作系统能够进行运算调度的最小单位。
进程和线程的关系:线程必须包含在进程内。一个进程中可以包含多个线程。多个线程可以并行执行。(线程是在进程中并行执行的,称为多线程)
一般在语言中会把非常耗时的任务,放到另外线程中去执行。线程:主线程、分线程。主线程主要负责程序运行。分线程去执行别的任务(非常耗时)
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");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)