摘要:
原文出处:http://www.cnblogs.com/tiancai/p/5417767.html 另外一篇描述:https://zhidao.baidu.com/question/394984299357804085.html 类的成员分为两类,静态成员(static member)和实例成员( 阅读全文
随笔分类 - 异步和多线程
委托(delegate)的三种调用方式:同步调用,异步调用,异步回调(转载)
2016-11-24 09:11 by 追忆似水流年, 403 阅读, 收藏,
摘要:
下面为即将被调用的方法: 同步调用: invoke后阻塞主进程,直到handler执行完毕; 异步调用: 主线程并没有等待,而是直接向下运行了。但是问题依然存在,当主线程运行到EndInvoke时,如果这时调用没有结束(这种情况很可能出现),这时为了等待调用结果,线程依旧会被阻塞。 异步回调: 用回 阅读全文
C#异步:实现一个最简单的异步
2016-11-24 08:40 by 追忆似水流年, 1561 阅读, 收藏,
摘要:
异步就是方法异步执行, 这个好理解。 异步有啥用? 以前只是听说过, 也不想计较。 不过还是碰到了需要这个东西的时候。 比如: 定时执行, 如果不用异步方法,也不用定时器,只用Thread.Sleep来间隔。 执行方法本身需要时间,这样定时的意义就变了——两次的执行时间肯定相隔不止1分钟了。 下面是 阅读全文
C# 中的多线程(转载)
2016-11-22 12:12 by 追忆似水流年, 169 阅读, 收藏,
摘要:
关于多线程的系列,翻译自国外大牛的文章,值得推荐 原文地址:https://blog.gkarch.com/topic/threading.html 阅读全文
个人对AutoResetEvent和ManualResetEvent的理解(转载)
2016-11-21 17:42 by 追忆似水流年, 248 阅读, 收藏,
摘要:
仅个人见解,不对之处请指正,谢谢。 一、作用 AutoResetEvent和ManualResetEvent可用于控制线程暂停或继续,拥有重要的三个方法:WaitOne、Set和Reset。 这三个方法的官方定义并不好理解,什么终止、非终止,乱七八糟的。在这里,我们以一种通俗易懂的概念来说明。 二、 阅读全文
C#线程系列讲座(4):同步与死锁
2016-11-21 09:55 by 追忆似水流年, 192 阅读, 收藏,
摘要:
虽然线程可以在一定程度上提高程序运行的效率,但也会产生一些副作用。让我们先看看如下的代码: } } 上面的程序的基本功能是使用Increment的Inc方法为n递增max,所不同的是,将在Main方法中启动30个线程同时执行Inc方法。在本例中max的值是10000(通过Increment的构造方法 阅读全文
C#线程系列讲座(3):线程池和文件下载服务器
2016-11-21 09:54 by 追忆似水流年, 229 阅读, 收藏,
摘要:
如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一定程序上消耗服务器的资源。为此,一个最好的解决方法就是在服务器启动之前,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中获得线程对象,并处理请求。保存这些线程对象的结构就叫做线程池。 在C#中可以通过System 阅读全文
C#线程系列讲座(2):Thread类的应用
2016-11-21 09:53 by 追忆似水流年, 202 阅读, 收藏,
摘要:
一、Thread类的基本用法 通过System.Threading.Thread类可以开始新的线程,并在线程堆栈中运行静态或实例方法。可以通过Thread类的的构造方法传递一个无参数,并且不返回值(返回void)的委托(ThreadStart),这个委托的定义如下: [ComVisibleAttri 阅读全文
C#线程系列讲座(1):BeginInvoke和EndInvoke方法
2016-11-21 09:48 by 追忆似水流年, 461 阅读, 收藏,
摘要:
一、C#线程概述 在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows 阅读全文
AutoResetEvent使用及线程相关资料收集
2011-06-07 17:51 by 追忆似水流年, 242 阅读, 收藏,
摘要:
文章链接地址为:http://www.cnblogs.com/breezeli/archive/2010/11/10/1873763.html 其中作者开头写的小例子很不错,可以对AutoResetEvent和ManualResetEvent的使用有清晰的认识:Set()方法就是将信号置为发送状态( 阅读全文
浙公网安备 33010602011771号