摘要:
一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的。 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇。我就不用多废话了。 今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate 阅读全文
摘要:
多线程实际运用<第七篇> 1、单线程采集100个页面 class Program { static int i = 6991275; static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); getTi 阅读全文
摘要:
互斥体实现了“互相排斥”(mutual exclusion)同步的简单形式(所以名为互斥体(mutex))。互斥体禁止多个线程同时进入受保护的代码“临界区”。因此,在任意时刻,只有一个线程被允许进入这样的代码保护区。 任何线程在进入临界区之前,必须获取(acquire)与此区域相关联的互斥体的所有权 阅读全文
摘要:
一、线程同步中的一些概念 1.1临界区(共享区)的概念 在多线程的环境中,可能需要共同使用一些公共资源,这些资源可能是变量,方法逻辑段等等,这些被多个线程共用的区域统称为临界区(共享区),临界区的资源不是很安全,因为线程的状态是不定的,所以可能带来的结果是临界区的资源遭到其他线程的破坏,我们必须采取 阅读全文
摘要:
一、ManualResetEvent 该对象有两种信号量状态True和False。构造函数设置初始状态。简单来说, 如果构造函数由true创建,则第一次WaitOne()不会阻止线程的执行,而是等待Reset后的第二次WaitOne()才阻止线程执行。 如果构造函数有false创建,则WaitOne 阅读全文
摘要:
在学习异步之前先来说说异步的好处,例如对于不需要CPU参数的输入输出操作,可以将实际的处理步骤分为以下三步: 以上步骤如果仅仅使用一个线程,当线程正在处理UI操作时就会出现“卡”的现象。 如果使用异步的处理方式,则这三步处理过程涉及到两个线程,主线程中启动第一步;第一步启动后,主线程结束(如果不结束 阅读全文
摘要:
操作系统通过线程对程序的执行进行管理,当操作系统运行一个程序的时候,首先,操作系统将为这个准备运行的程序分配一个进程,以管理这个程序所需要的各种资源。在这些资源之中,会包含一个称为主线程的线程数据结构,用来管理这个程序的执行状态。 在Windows操作系统下,线程的的数据结构包含以下内容: 1、线程 阅读全文
摘要:
http://www.cnblogs.com/kissdodog/archive/2013/03/28/2986026.html 一、CLR线程池 管理线程开销最好的方式: 微软早就替我们想到了,为我们实现了线程池。 CLR线程池并不会在CLR初始化时立即建立线程,而是在应用程序要创建线程来运行任务 阅读全文