摘要: 1.使用task类创建并执行简单任务: 使用task的构造函数来创建 任务,并调用start方法来启动任务,执行异步操作 aitAll用于等待提供的所有 System.Threading.Tasks.Task 对象完成执行过程和Wait用于等待提供的任一个 等待的方法还有2个 一个是waitall, 阅读全文
posted @ 2018-01-10 11:15 Hans.NET 阅读(160) 评论(0) 推荐(0) 编辑
摘要: Semaphore负责协调线程,可以限制对某一资源访问的线程数量 阅读全文
posted @ 2018-01-09 17:50 Hans.NET 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 1. task类表示一个线程,最简单的task的构造方法是 ,参数是Action<t>,是一个无返回值的泛型委托。 指向要执行的函数。当调用·start()方法时,就执行子线程。执行指向的函数。 2.也可以使用 Task.Factory.StartNew方法,这个方法构造一个Task并且立刻开始运行 阅读全文
posted @ 2018-01-09 17:32 Hans.NET 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1.线程的最基础的概念是Thread。我们知道了如何开启一个异步线程去做一些事情。但是如果我们需要开启很多线程的时候,如果仍然使用Thread的话,我们需要去管理每一个线程的启动,挂起和终止。 工作量很大有点麻烦。.net framework为我们提供了Threadpool,来帮助我们来管理线程。这 阅读全文
posted @ 2018-01-09 15:50 Hans.NET 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1:用TaskFactory的实例: 运行结果为: 2. 使用task类的Factory属性 3.使用task类的实例,用start来启动任务。 当我们用Task类时,除了用start方法,也可以用RunSynchornously()方法 阅读全文
posted @ 2018-01-09 15:32 Hans.NET 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 使用Thread创建线程后,我们需要对线程进行 控制 1.使用start()方法,使线程处于Running状态,线程开始执行 2.使用Join()方法,使线程进入waitsleepjoin状态。 3.使用sleep()方法,也会使线程进入waitsleepjoin状态。经历了Sleep()方法定义的 阅读全文
posted @ 2018-01-08 15:35 Hans.NET 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 线程同步 示范1 代码如下: 运行结果如下: 从运行结果可以看出,两个线程同步访问共享资源,没有考虑同步的问题,结果不正确。 所以需要线程同步。 所谓同步:是指在某一时刻只有一个线程可以访问变量。如果不能确保对变量的访问是同步的,就会产生错误。 c#为同步访问变量提供了一个非常简单的方式,即使用c# 阅读全文
posted @ 2018-01-08 15:02 Hans.NET 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 一个正在运行的应用程序被称为一个进程:进程可以有一个·或多个线程。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把工作划分为多个独立的区域的。进程可以理解为一个程序的基本边界。 线程(Thr 阅读全文
posted @ 2018-01-08 14:23 Hans.NET 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 在线程中,Thread类有四个构造方法: 当我们使用 Thread类创建对象的时候,传入参数,就会用到构造方法。ThreadStart 和ParameterizedThreadStart 都是 委托类型。 也就是说,这里的start变量 是委托变量。 根据之前的委托变量的 使用教程。 委托变量最终指 阅读全文
posted @ 2018-01-08 14:09 Hans.NET 阅读(4754) 评论(0) 推荐(0) 编辑
摘要: 线程的属性有:线程的当前执行状态是否为ture,线程的名称,线程的优先级,线程的状态。 在这次练习中,我们首先创建一个ThreadMethod()方法,参数为object类型的。 负责输出当前线程的名字(Thread.CurrentThread.Name)。 然后我们创建一个 线程变量。指向这个Th 阅读全文
posted @ 2018-01-08 10:22 Hans.NET 阅读(208) 评论(0) 推荐(0) 编辑