随笔分类 -  c#

c#
摘要:ManualResetEventSlim的整个工作方法有点像人群通过大门,AutoResetEvent事件像一个旋转门,一次只允许一人通过。ManualResetEventSlim是ManualResetEvent的混合版本,一直保持大门敞开直到手动调用Reset方法。当调用_mainEvent.S 阅读全文
posted @ 2020-02-24 09:44 无聊的蚂蚁 阅读(528) 评论(0) 推荐(0)
摘要:主要作用:从一个线程向另一个线程发送通知,进行线程同步。 有点像旋转门,一次只允许一个人通过(一边等待,一边通过,如此循环) AutoResetEvent 常常被用来在两个线程之间进行信号发送,两个线程共享相同的AutoResetEvent对象,线程可以通过调用AutoResetEvent对象的Wa 阅读全文
posted @ 2020-02-22 08:44 无聊的蚂蚁 阅读(213) 评论(0) 推荐(0)
摘要:Semaphore:信号量。 相当于一个计数器,记录一个共享资源被访问线程的个数;好比有两个或者更多个办事窗口,他们都做同一件事;假设有4个窗口,五个窗口都没人访问的时候计数器为4;有一个窗口被占用计数器减1,为3;全部被占用则计数器为0;这时候其他人想要访问就必须等待占用结束后计数器加1; Sem 阅读全文
posted @ 2020-02-21 17:29 无聊的蚂蚁 阅读(242) 评论(0) 推荐(0)
摘要:同一时刻,只能有一个线程持有该锁! 使用Mutex互斥锁来同步两个单独的程序(可以两次运行该程序,查看运行结果) static void Main(string[] args) { const string MutexName = "CSharpThreadingCookbook"; using ( 阅读全文
posted @ 2020-02-20 19:36 无聊的蚂蚁 阅读(585) 评论(0) 推荐(0)
摘要:原则: 线程都不应该抛出未捕获的exception(有矛盾在自己家解决,别人哪有时间管你家吵架!) 也就是说各个线程需要自己把自己的exception处理掉。 话不多说,直接看代码 static void Main(string[] args) { //第一个会抛出异常的线程(但这个线程方法内部作了 阅读全文
posted @ 2020-02-19 20:28 无聊的蚂蚁 阅读(502) 评论(0) 推荐(0)
摘要:下面代码展示死锁是怎么形成的,以及如何使用Monitor.TryEnter解除死锁 话不多说,还是直接看代码 先定义一个方法,以便给一会创建的子线程调用 static void LockTooMuch(object lock1, object lock2) { lock (lock1)//先锁定第一 阅读全文
posted @ 2020-02-18 10:03 无聊的蚂蚁 阅读(293) 评论(0) 推荐(0)
摘要:闲话不多说,直接看代码: var c = new Counter(); //new了3个线程 var t1 = new Thread(() => TestCounter(c)); var t2 = new Thread(() => TestCounter(c)); var t3 = new Thre 阅读全文
posted @ 2020-02-17 21:36 无聊的蚂蚁 阅读(1528) 评论(0) 推荐(0)
摘要:总体来说多线程中向线程传递参数有3种方式 创建对象,初始化对象中的一些值,然后在Start()方法中调用该对象方法 通过lambda表达式 Thread.Start方法 先看代码: static void Count(object iterations) { CountNumbers((int)it 阅读全文
posted @ 2020-02-17 17:41 无聊的蚂蚁 阅读(1816) 评论(0) 推荐(0)
摘要:使用 C# 中的索引器和 JavaScript 中访问对象的属性是很相似。 之前了解过索引器,当时还把索引器和属性给记混了, 以为索引器就是属性,下面写下索引器和属性的区别,以及怎么使用索引器 先说明一点,这里的索引器和数据库中的索引不一样,虽然都是找元素。 索引器和属性的区别: 属性和索引器都是函 阅读全文
posted @ 2020-02-17 15:48 无聊的蚂蚁 阅读(260) 评论(0) 推荐(0)
摘要:一.主线程、前台线程与后台线程 相信前几年,大家都用过迅雷,用来下载文件是非常方便的,更重要的是速度快。那么,它的速度非常之快,全速下载的时候明显地拉慢了整个系统的响应时间,说明他占用了大量的系统资源。那它为什么这么快?知乎上的yskin用户解释说『一个下载任务进来,迅雷把文件平分成10份,然后开1 阅读全文
posted @ 2020-02-16 14:43 无聊的蚂蚁 阅读(541) 评论(0) 推荐(0)