项目用到了线程 所以写出来留作以后复习
线程Thread类包含在System.Threading命名空间有关线程的操作主要包含在这个类中
现在总结一下Thread的常用方法和属性

Start([参数])//开始运行线程
Sleep(毫秒)//线程休眠
Join()//线程阻塞
Abort()//终止线程 在调用此方法的线程上引发ThreadAbortExcetion
Interrupt() //中断处于WaitSleepJoin线程状态的线程

CurrentContext//获取当前进程的上下文

IsAlive//获取一个值,该值表示当前线程的执行状态。如果此线程已启动并且尚未正常终止或中止,则为true,否则为false.

IsBackground//获取或设置一个值,该值批示某个线程是否为后台线程

IsThreadPoolThread//获取一个值,该值指示线程是否属于托管线程池

ManagedThreadId//获取或设置线程的惟一标识

Name//获取或设置线程的名称。

Priority//获取或设置一个值,该值指示线程的调度优先级
{
Highest优先级别最高,可以将线程安排在任何其他优先级的线程之前。
AboveNormal优先级别次高,可以将线程安排在Highest优先级别之后,在具有Normal优先级别之前。
Normal优先级别普通,可以将线程安排在AboveNormal优先级别之后,在具有BelowNorml优先级别之前。
BelowNormal优先级别次低,可以将线程安排在Normal优先级别之后,在具有Lowest优先级别之前。
Lowest优先级别最低,可以将线程安排在任何其它优先级的线程之后。
}

ThreadState//获取一个值,该值包含当前线程的状态。

现在让我们来看看实际的运行结果

1简单的创建线程

 1    static void Main(string[] args)
2 {
3 Thread th = new Thread(show);
4 th.Name = "demo";
5 //获取线程name
6 string name = th.Name;
7 //获取线程id
8 string id = th.ManagedThreadId.ToString();
9 //获取是否线程池线程
10 bool pool = th.IsThreadPoolThread;
11 //获取是否后台线程
12 bool bg = th.IsBackground;
13 Console.WriteLine("线程id:" +id+" 线程name:" + name+" 后台:" + bg+" 线程池:" + pool);
14 //启动线程
15 th.Start("这是线程调用");
16 //判断是否执行完毕
17 while (th.IsAlive)
18 {
19 Console.Write("*");
20 Thread.Sleep(100);
21 }
22 Console.Read();
23 }
24 //这里的参数只能是object类型的
25 static void show(object o)
26 {
27 //线程休眠1s
28 Thread.Sleep(1000);
29
30 Console.Write(o);
31 }

运行结果

Thread记录的更多相关文章

  1. 《Linux及安全》期中总结&《Linux内核分析》期终总结

    [5216 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK NINE ...

  2. 20169212《Linux内核原理与分析》第八周作业

    理论 task_struct的结构关系 非常庞大的数据结构,400多行代码.包括对进程链表的管理,控制台,文件系统描述,文件描述符,内存管理描述,信号描述等. 创建一个新进程在内核中的执行过程 for ...

  3. 第六周——分析Linux内核创建一个新进程的过程

    "万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 &q ...

  4. 分析Linux内核创建一个新进程的过程

    一.原理分析 1.进程的描述 进程控制块PCB——task_struct,为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct ...

  5. 关于C#中的线程重启的问题

    首先不管是C#也好,还是java也好,对于已经Abort的线程是无法再次Start的,除非是声明私有变量new一个新的线程,网上也有很多人说可以Suspend挂起线程,然后再Resume继续,但是相信 ...

  6. 《Linux内核分析》第六周 进程的描述与创建

    [刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK SIX(3 ...

  7. 20135220谈愈敏Blog6_进程的描述和创建

    进程的描述和创建 谈愈敏 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 进程 ...

  8. Linux内核分析——期末总结

    Linux内核学习总结 首先非常感谢网易云课堂这个平台,让我能够在课下学习,课上加强,体会翻转课堂的乐趣.孟宁老师的课程循序渐进,虽然偶尔我学习地不是很透彻,但能够在后续的课程中进一步巩固学习,更加深 ...

  9. 20169210《Linux内核原理与分析》第八周作业

    第一部分:实验 首先还是网易云课堂的学习,这次的课程是进程的创建和进程的描述. linux进程的状态与操作系统原理中的描述的进程状态有些不同,例如就绪状态和运行状态都是TASK_RUNNING. Li ...

  10. Linux如何创建一个新进程

    2016-03-31 张超<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux如何创建一个新进程 ...

随机推荐

  1. 玩转web3第二篇——Web3UI Kit

    介绍 开发web2应用的时候,可以很方便找到很多优秀的UI库,比如antd,material ui,element ui等等,但web3应用对应的UI库却不多. 今天给大家介绍一款优秀的WEB3的UI ...

  2. immutable.js学习笔记(八)----- immutable.js对象 和 原生对象的相互转换

    一.原生对象转换为immutable.js对象 fromJS 栗子一: 栗子二: 如果数组里面有对象,对象里面有数组,怎么转换呢 复杂结构的转换 二.immutable.js对象转换为原生对象 toJ ...

  3. C# 编写Windows Service Windows服务程序

    一.新建项目--选择Windows 服务,输入新的项目名称,点击确定. 二.服务名称的设置.服务添加安装程序.服务程序代码 1.服务名称的设置:视图 - 解决方案资源管理器 - 你创建的服务项目 默认 ...

  4. 使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件

    使用vs2019学习xamarin时,创建新程序.使用模拟器真机等测试都报错如下图错误: 调整AndroidManifest.xml和设备调试属性,打开[Android SDK和工具]安装可能需要的S ...

  5. JavaScript的闭包和作用域

    作用域相关 作用域的概念: 作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性.换句话说,作用域决定了代码区块中变量和其他资源的可见性: 作用域的类型: 全局作用域: 最外层函数和在最外 ...

  6. NOIP2021游记总结

    \(\text{Day-1}\) 惨遭遣返······ 这真是伟大的啊!! \(\text{Day1}\) \(day\) 几好像没有意义,反正只有一天 \(\text{T1}\) 极致 \(H_2O ...

  7. JZOJ 4216.平方和

    \(\text{Problem}\) 维护一个序列 支持插入一个数,区间加,询问区间平方和 \(\text{Solution}\) 平衡树很模板的题了 考场打 \(fhq-treap\) 毫无悬念过了 ...

  8. Mac监控键盘输入并执行动作

    背景 电脑的安全是非常重要的,特别是里面的敏感数据,若是被有心之人利用,那后果不堪设想. 所以我们部门定下了一个规矩,谁离开工位要是不锁屏,就可以在部门群发送一个消息:我请大家吃鸡翅. oh,技术出身 ...

  9. JMeter BeanShell 学习

    JMeter BeanShell 学习 Beanshell分为: JMeter有如下BeanShell组件: 定时器: BeanShell Timer 前置处理器:BeanShell PreProce ...

  10. js的map、filter的用法

    filter() 创建新数组,新数组放指定数组中符合条件的元素,满足条件的留下,是对原数组的过滤. map()    返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,是对原数组的加工,映 ...