2016年12月30日

【转】【C#】迭代器IEnumerable和IEnumerator

摘要: 迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,他是一种简化对象间通讯的模式,也是一种非常容易理解和使用的模式。简单来说,迭代器模式使得你能够获取到序列中的所有元素而不用关心是其类型是array,list,linked list或者是其他什么序列结构。这一点使得能够 阅读全文

posted @ 2016-12-30 21:29 梦琪小生 阅读(2031) 评论(0) 推荐(0) 编辑

【转】【C#】C# 5.0 新特性——Async和Await使异步编程更简单

摘要: 一、引言 在之前的C#基础知识系列文章中只介绍了从C#1.0到C#4.0中主要的特性,然而.NET 4.5 的推出,对于C#又有了新特性的增加——就是C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作,下面就具体看看编译器到底在 阅读全文

posted @ 2016-12-30 21:20 梦琪小生 阅读(458) 评论(0) 推荐(0) 编辑

【C#】【Thread】BackgroundWorker的使用

摘要: BackgroundWorker 可以用于启动后台线程。 主要的事件及参数: 1.DoWork ——当执行BackgroundWorker.RunWorkerAsync方法时会触发该事件,并且传递DoWorkEventArgs参数; 2.RunWorkerCompleted ——异步操作完成或中途终 阅读全文

posted @ 2016-12-30 17:34 梦琪小生 阅读(554) 评论(0) 推荐(0) 编辑

【C#】【Thread】CountdownEvent任务并行

摘要: System.Threading.CountdownEvent 是一个同步基元,它在收到一定次数的信号之后,将会解除对其等待线程的锁定。 CountdownEvent 专门用于以下情况:您必须使用 ManualResetEvent 或 ManualResetEventSlim,并且必须在用信号通知事 阅读全文

posted @ 2016-12-30 17:26 梦琪小生 阅读(3857) 评论(1) 推荐(1) 编辑

【C#】【Thread】Barrier任务并行

摘要: Barrier 是一个对象,它可以在并行操作中的所有任务都达到相应的关卡之前,阻止各个任务继续执行。 如果并行操作是分阶段执行的,并且每一阶段要求各任务之间进行同步,则可以使用该对象。 ——MSDN 简单理解就是: 设定一个量,每个线程运行到这停止,等其他所有线程都到达这个点,然后继续运行。 上述例 阅读全文

posted @ 2016-12-30 16:35 梦琪小生 阅读(800) 评论(1) 推荐(0) 编辑

【C#】【Thread】SpinWait

摘要: System.Threading.SpinWait 是一个轻量同步类型,可以在低级别方案中使用它来避免内核事件所需的高开销的上下文切换和内核转换。 在多核计算机上,当预计资源不会保留很长一段时间时,如果让等待线程以用户模式旋转数十或数百个周期,然后重新尝试获取资源,则效率会更高。 如果在旋转后资源变 阅读全文

posted @ 2016-12-30 15:45 梦琪小生 阅读(6205) 评论(0) 推荐(0) 编辑

【C#】【Thread】SpinLock

摘要: SpinLock结构是一个低级别的互斥同步基元,它在等待获取锁时进行旋转。 在多核计算机上,当等待时间预计较短且极少出现争用情况时,SpinLock 的性能将高于其他类型的锁。 不过,我们建议您仅在通过分析确定 System.Threading.Monitor 方法或 Interlocked 方法显 阅读全文

posted @ 2016-12-30 15:23 梦琪小生 阅读(879) 评论(0) 推荐(0) 编辑

【C#】【Thread】Semaphore/SemaphoreSlim信号量

摘要: System.Threading.Semaphore 类表示一个命名(系统范围)信号量或本地信号量。 它是一个对 Win32 信号量对象的精简包装。 Win32 信号量是计数信号量,可用于控制对资源池的访问。 SemaphoreSlim 类表示一个轻量的快速信号量,可用于在一个预计等待时间会非常短的 阅读全文

posted @ 2016-12-30 15:17 梦琪小生 阅读(851) 评论(0) 推荐(0) 编辑

导航