一、概述
单线程就类似是一个干活多线程就类似是多个人同时干活
C#里面一个Form界面就是一个线程,也就是这个界面的主线程,如果想在这个界面同时执行多个独立的任务,那么就需要创建多个子线程去各自执行各自的任务。
(相关资料图)
二、Thread类
Thread类位于System.Threading命名空间下,System.Threading命名空间提供一些可以进行多线程编程的类和接口。Thread类主要用于创建并控制线程、设置线程优先级并获取其状态。
Thread类的常用属性及说明
Thread:创建和控制线程,设置其优先级并获取其状态。
ThreadAbortException:当对 Abort(Object)方法发出调用时引发的异常。此类不能被继承。
ThreadExceptionEventArgs:为 ThreadException 事件提供数据。
ThreadInterruptedException:中断处于等待状态的 Thread 时引发的异常。
ThreadLocal
ThreadPool:提供一个线程池,该线程池可用于执行任务、发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。
ThreadPoolBoundHandle:表示已绑定到系统线程池的 I/O 句柄,并使低级别组件能够接收异步 I/O 操作的通知。
ThreadStartException:当基础操作系统线程已启动但该线程尚未准备好执行用户代码前,托管线程中出现错误,则会引发异常。
ThreadStateException:当 Thread 处于对方法调用无效的 ThreadState 时引发的异常。
Timeout:包含指定无限期超时间隔的常数。此类不能被继承。
Timer:提供以指定的时间间隔对线程池线程执行方法的机制。此类不能被继承。
Volatile:包含用于执行可变内存操作的方法。
WaitHandle:封装等待对共享资源进行独占访问的操作系统特定的对象。
WaitHandleCannotBeOpenedException:当尝试打开不存在的系统互斥体、信号量或事件等待句柄时引发的异常。
WaitHandleExtensions:提供针对 wait 句柄使用 safe 句柄的简便方法。
ApartmentState:获取或设置该线程的单元状态
CurrentContext:获取线程正在其中执行的当前上下文
CurrentThread:获取当前线程正在运行的线程
IsAlive:获取一个值,该值指示当前线程的执行状态
ManagedThreadld:获取当前托管线程的唯一标识符
Name:获取或设置线程的名称
Priority:获取或设置一个值,改制指示线程的调度优先级
ThreadState:获取一个值,该值包含当前线程的状态
Abort:在调用该方法的线程上引发ThreadAbortException,以开始终止该线程的过程。调用该方法通常会终止线程
GetApartmentState:返回一个ApartmentState值,该值指示单元状态
GetDomain:返回当前线程正在其中运行的当前域
GetDomainID:返回唯一的应用程序标识符
Interrupt:中断处于WaitSleepJoin线程状态的线程
Join:阻止调用线程,直到某个线程终止时为止
ResetAbort:取消为当前线程请求的Abort
Resume:继续已挂起的线程
SetpartmentState:在线程启动前设置其单元状态
Sleep:将当前线程阻止指定的毫秒数
SpainWait:导致线程等待由iterations参数定义的时间量
Start:使线程被安排进行执行
Suapent:挂起线程,或者如果线程已挂起,则不起作用
VolatileRead:读取字段值。无论处理器的数目或处理器缓存的状态如何,该值都是由计算机的任何处理器写入的最新值
VolatileWrite:立即向字段写入一个值,一边该值对计算机中的所有处理器都可见
三、例子:以下代码是窗体打开的时候创建3个线程
第一个线程是永远执行下去的,每间隔3秒执行一次文件拷贝
第二个线程是无参数的
第三个线程是有参数的,有参数的线程传入的是对象,可以把全部值放在一个类里面进行传入,在开发中经常会用到有参数的线程
四、线程生命周期
线程生命周期开始是在 System.Threading.Thread 类的对象被创建时,结束于线程被终止或完成执行时。
线程状态:
(1)未启动状态(Unstarted):当线程实例被创建但 Start 方法未被调用时的状况。
(2)就绪状态(Runnable):当线程准备好运行并等待 CPU 周期时的状况。
(3)运行状态(Running):线程已经调用start运行
(4)不可运行状态():下面的几种情况下线程是不可运行的:
已经调用 Sleep 方法
已经调用 Wait 方法
通过 I/O 操作阻塞
(5)死亡状态:当线程完成其任务是,线程进入死亡、终止、中止状态。
总结:线程的作用是方便完成多任务同时进行又不影响主线程的运行,现实开发的多任务场景都需要用到线程。
标签:
一、概述单线程就类似是一个干活多线程就类似是多个人同时干活C 里面一个Form界面就是一个线程,也就是...
2月19日晚,娱乐圈多位明星透露童星陈辰(又名陈晨)于2月18日离世,年仅38岁,他三岁起开始拍摄各类电...
央广网万载2月20日消息(记者邓玉玲)2月20日,江西省宜春市万载县公安局交警大队发布通报:2023年2月18...
上证报中国证券网讯(记者孔子元)美迪西发布业绩快报,2022年公司实现营业收入170,245 40万元,同比增...
乐居财经张林霞2月20日,宁夏国有资本运营集团有限责任公司2022年面向专业投资者公开发行公司债券(第二...
1、哈尔滨海宁皮革城旅游区是国内皮革和毛皮消费的“圣地”。集购物休闲、文化旅游、创意研发、时尚潮流...
长安街知事微信公众号|实习记者丁文捷2月19日上午,一则题为“合肥教育名师陈宏友讲座中被学生轰下台”...
家得宝(HD US)和沃尔玛(WMT US)将于2月21日(周二)发布第四季度收益报告,这将让投资者更广泛地了解目...
据共同社报道,丰田汽车公司10月10日公布的中国市场9月新车销量显示,与去年同期相比大增50 3%至172,800辆。另
1、烟台月亮湾可以免费海钓。2、地址:烟台莱山附近。3、渔场附近景色宜人,垂钓环境很好。这是一个天然...
1、最好选择5173亲自担保的代练公司来代练,但是还是有一定的风险总之根据5173的合同,你的账号因为他所...
对话|张恩利:物体与人一样,可以成为一种肖像,肖像,油画,绘画,画家,张恩利,美术馆
东方网记者包永婷2月19日报道:从今天凌晨开始,上海的气温几乎走成一条直线,和昨日的“抛物线”气温形...
1、 三相交流电路 three-phaseA C circuit 由三相交流电源供电的电路。2、简称三相电路
1、国税要求的是24针平推式打印机,最多能打7联,针式打印机现在做的最好的就是EPSON(爱普生)市场占有...
1、一、在启动之前,先查询所做的类目是否会被限流?避免做大量的无用功。2、例如,同样是家居用品,抱...
栗子是栗树果实的一部分。世界上有一些奇妙的遗产树;有些可能已有2,000多年的历史。其中有一些特殊的树...
气垫BB使用非常方便,上妆会服帖、自然,自带的粉扑可以让你随时随地补妆。那到底这气垫BB效果如何呢?又...
1、最近听说很多朋友想拿到长庚Tu合金20在装甲方面的设计。得到这个物品的一个方法是在维纳斯的NPC黑手...
1、把PPT文档中的文字转换成Word文档是比较简单的。只需使用PPT的“大纲”视图,将其全部选中,复制粘贴到Word文
X 关闭
X 关闭