多线程
文章平均质量分 86
然鸟
这个作者很懒,什么都没留下…
展开
-
[C#学习笔记之多线程2]多线程同步与并发访问共享资源工具—Lock、Monitor、Mutex、Semaphore
“线程同步”的含义 当一个进程启动了多个线程时,如果需要控制这些线程的推进顺序(比如A线程必须等待B和C线程执行完毕之后才能继续执行),则称这些线程需要进行“线程同步(thread synchronization)”。 线程同步的道理虽然简单,但却是给多线程开发带来复杂性的根源之一。当线程同步不好时,有可能会出现一种特殊的情形——死锁(Dead Lock原创 2012-05-31 23:05:20 · 10462 阅读 · 3 评论 -
[C#学习笔记之异步编程模式3]异步下载web网页
这是对上篇博文提到的IAsyncResult异步调用模式的一个实例应用,所用到的知识有: 通过异步回调函数实现异步操作通过类实现给异步回调函数传递附加信息在子线程中通过异步回调的方式通知主线程执行结果WebRequest和WebResponse的操作 using System; using System.Collections.Generic; using System.Linq;原创 2012-05-21 08:26:51 · 1936 阅读 · 0 评论 -
[C#学习笔记之异步编程模式1]了解同步与异步
同步执行 程序执行的流程是按照语句顺序执行,一句执行完再执行下一句,如果遇到函数调用,要等到函数调用返回以后才会执行下一句——这就是“程序的同步执行模式”。 例 1: using System.Threading; using System; public class SynchroPattern { public delegate int NewTaskDelegate(in原创 2012-05-20 11:09:53 · 1991 阅读 · 2 评论 -
[C#学习笔记之多线程1]使用ParameterizedThreadStart委托向线程函数传送参数
在不传递参数情况下,一般大家都使用ThreadStart代理来连接执行函数,ThreadStart委托接收的函数不能有参数,也不能有返回值。如果希望传递参数给执行函数,则可以使用带参数的ParameterizedThreadStart委托, public delegate void ParameterizedThreadStart(Object obj) 可以将要传送给原创 2012-05-21 12:32:23 · 11772 阅读 · 2 评论 -
[C#学习笔记之异步编程模式2]BeginInvoke和EndInvoke方法
为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。异步调用并不是要减少线程的开销, 它的主要目的是让调用方法的主线程不需要同步等原创 2012-05-20 14:36:40 · 7889 阅读 · 4 评论