摘要: 一、Task.Yield Task.Yield简单来说就是创建时就已经完成的Task,或者说执行时间为0的Task,或者说是空任务,也就是在创建时就将Task的IsCompeted值设置为0。 我们知道await的Task完成时会释放线程,然后从线程池中申请新的线程继续执行await之后的代码,那产 阅读全文
posted @ 2019-12-18 14:22 缥缈的尘埃 阅读(830) 评论(0) 推荐(0)
摘要: 一、异步方法返回类型 • 只能返回3种类型(void、Task和Task<T>)。 1)void返回类型:调用方法执行异步方法,但又不需要做进一步的交互。 class Program { static void Main(string[] args) { #region async & await入 阅读全文
posted @ 2019-12-16 23:21 缥缈的尘埃 阅读(1002) 评论(0) 推荐(0)
摘要: 一、涉及内容 async & await是C# 5.0引入的,控制台输出所使用的$符号(拼接字符串)是C# 6.0引入的,其功能类似于string.Format()方法。 二、多线程、异步、同步之间的联系与区别 厨房案例: 比如说你要炒5道菜ABCDE,但是只有两个炉子可以用,即同时只能炒两道菜。在 阅读全文
posted @ 2019-12-14 15:59 缥缈的尘埃 阅读(1027) 评论(0) 推荐(1)
摘要: 一、Task类简介 Task类是在.NET Framework 4.0中提供的新功能,主要用于异步操作的控制。它比Thread和ThreadPool提供了更为强大的功能,并且更方便使用。 Task和Task<TResult>类:前者接收的是Action委托类型;后者接收的是Func<TResult> 阅读全文
posted @ 2019-12-13 23:29 缥缈的尘埃 阅读(4009) 评论(0) 推荐(2)
摘要: 一、信号量(Semaphore) 信号量(Semaphore)是由内核对象维护的int变量。当信号量为0时,在信号量上等待的线程会堵塞;信号量大于0时,就解除堵塞。当在一个信号量上等待的线程解除堵塞时,内核自动会将信号量的计数减1。在.NET下通过Semaphore类来实现信号量同步。 Semaph 阅读全文
posted @ 2019-12-10 23:39 缥缈的尘埃 阅读(907) 评论(0) 推荐(0)
摘要: 前面讲的线程同步主要是用户模式的(CLR Via C# 一书中是这么定义的,书中说到线程同步分两种:一、用户模式构造 二、内核模式构造),对于内核模式构造(指的的是构造操作系内核对象),我们使用.NET Framework中的类如AutoResetEvent、Semaphore中方法来实现线程同步, 阅读全文
posted @ 2019-12-08 01:58 缥缈的尘埃 阅读(824) 评论(0) 推荐(0)
摘要: 一、线程同步概述 创建多线程来实现让我们能够更好地响应应用程序,然而当我们创建了多个线程时,就存在多个线程同时访问一个共享资源的情况。此时,我们就需要用到线程同步,线程同步可以防止数据(共享资源)的损坏。 一般来说,设计应用程序应尽量避免使用线程同步, 因为线程同步会产生一些问题: 1)它的使用比较 阅读全文
posted @ 2019-12-06 16:21 缥缈的尘埃 阅读(647) 评论(0) 推荐(0)
摘要: 一、I/O线程实现对文件的异步 1.1、I/O线程介绍 对于线程所执行的任务来说,可以把线程分为两种类型:工作者线程和I/O线程。 • 工作者线程用来完成一些计算的任务,在任务执行的过程中,需要CPU不间断地处理,所以,在工作者线程的执行过程中,CPU和线程的资源是充分利用的。 • I/O线程主要用 阅读全文
posted @ 2019-12-05 14:59 缥缈的尘埃 阅读(1819) 评论(1) 推荐(0)
摘要: 一、线程池基础 首先,创建和销毁线程是一个要耗费大量时间的过程,其次,太多的线程也会浪费内存资源,所以通过Thread类来创建过多的线程反而有损于性能。为了改善这样的问题 ,.NET中就引入了线程池。 线程池形象的表示就是存放应用程序中使用的线程的一个集合(就是放线程的地方,这样线程都放在一个地方就 阅读全文
posted @ 2019-12-04 16:41 缥缈的尘埃 阅读(1046) 评论(0) 推荐(0)
摘要: WinForm界面使用IrisSkin,可以说做到了一键美化,当然美化的效果仁者见仁智者见智,可以挑选自己喜欢的。 1、IrisSkin下载地址:https://www.cr173.com/soft/69061.html 2、将下载的文件放到Debug下面。 3、新建一个WinForm窗体,命名为M 阅读全文
posted @ 2019-12-01 01:38 缥缈的尘埃 阅读(4902) 评论(0) 推荐(1)