第三方的增强型树型控件Aga.Controls是勇哥常用的控件。由于其使用方法常用常忘,这里记录一下以备察。Aga.Controls的扩展能力如下: 自带勾选与图标,图标是可以更换的。 子节点可以拖放换位置,子节点可以拖放成根结点 根点与子结点都可以更名常见的需求主要是要判定节点是根还是子节点,同一级节点有多少等等。演示代码,读树节点全部的信息: /// <summary>
&nbs
如下图所示:右边的列表会自动选中和左边名字相似的项目。注意,只要相似度高即可,并非要完全一致,这一点真是神奇。此功能对于书写对象属性赋值,真是尤如神助。VS号称宇宙最强代码编辑器,真不是吹的~~~~--------------------- 作者:hackpig来源:www.skcircle.com版权声明:本文为博主原创文章,转载请附上博文链接!
简介: C#多线程(17):小总结前言本篇内容是小总结和过渡,看完这篇后,就要开始继续学习 C# 多线程中的知识点啦~。前面,经过 16 篇的学习,我们学习了多线程、锁、线程池、任务、同步、异步等知识,还没有使用到 async、await 这些关键字。有同学问,现在随便拉一个开源项目,里面几乎都是 async/await 这些组成;使用了 async/await ,结果比不用更加耗性能了;ASP.NET Core 中的管道,异步,回调这些又是啥?要搞清楚这些,就要好好了解 Task(任
简介: C#多线程系列(3):原子操作知识点竞争条件当两个或两个以上的线程访问共享数据,并且尝试同时改变它时,就发生争用的情况。它们所依赖的那部分共享数据,叫做竞争条件。数据争用是竞争条件中的一种,出现竞争条件可能会导致内存(数据)损坏或者出现不确定性的行为。线程同步如果有 N 个线程都会执行某个操作,当一个线程正在执行这个操作时,其它线程都必须依次等待,这就是线程同步。多线程环境下出现竞争条件,通常是没有执行正确的同步而导致的。CPU时间片和上下文切换时间片(timeslice)是操
简介: C#多线程(4):进程同步Mutex类Mutex 类Mutex 中文为互斥,Mutex 类叫做互斥锁。它还可用于进程间同步的同步基元。Mutex 跟 lock 相似,但是 Mutex 支持多个进程。Mutex 大约比 lock 慢 20 倍。互斥锁(Mutex),用于多线程中防止两条线程同时对一个公共资源进行读写的机制。Windows 操作系统中,Mutex 同步对象有两个状态:signaled:未被任何对象拥有;nonsignaled:被一个线程拥有;Mutex 只能在获得锁
简介: C#多线程(5):资源池限制Semaphore、SemaphoreSlim 类两者都可以限制同时访问某一资源或资源池的线程数。这里先不扯理论,我们从案例入手,通过示例代码,慢慢深入了解。Semaphore 类这里,先列出 Semaphore 类常用的 API。其构造函数如下:构造函数说明Semaphore(Int32, Int32)初始化 Semaphore 类的新实例,并指定初始入口数和最大并发入口数。Semaphore(Int32, Int32, String)初始化 Se
简介: C#多线程(7):手动线程通知区别与示例AutoResetEvent 和 ManualResetEvent 十分相似。两者之间的区别,在于前者是自动(Auto),后者是手动(Manua)。你可以先运行下面的示例,再测试两者的区别。AutoResetEvent 示例:class Program
{
// 线程通知
简介: C#多线程(6):线程通知AutoRestEvent 类用于从一个线程向另一个线程发送通知。微软文档是这样介绍的:表示线程同步事件在一个等待线程释放后收到信号时自动重置。其构造函数只有一个:构造函数里面的参数用于设置信号状态。构造函数说明AutoResetEvent(Boolean)用一个指示是否将初始状态设置为终止的布尔值初始化 AutoResetEvent 类的新实例。真糟糕的机器翻译。常用方法AutoRestEvent 类是干嘛的,构造函数的参数又是干嘛的?不着急,我们来
简介: C#多线程(8):线程完成数解决一个问题假如,程序需要向一个 Web 发送 5 次请求,受网路波动影响,有一定几率请求失败。如果失败了,就需要重试。示例代码如下:class Program
{
private static int count = 0;
&nb
引用自: https://developer.aliyun.com/article/906607 简介: C#多线程(9):多阶段并行线程前言这一篇,我们将学习用于实现并行任务、使得多个线程有序同步完成多个阶段的任务。应用场景主要是控制 N 个线程(可随时增加或减少执行的线程),使得多线程在能够在 M 个阶段中保持同步。线程工作情况如下:我们接下来 将学习C# 中的 Barrier ,用于实现并行协同工作。Barrier 类使多个任务能够采用并行方式依据某种算法在多个阶段中协