![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
心在忍耐
阴雨时节心在忍耐,至少我们看过不一样的风景。当雨过天晴,明亮的天际终于教会我们,等待的时光是多么的珍贵。
展开
-
前线解释多线程《二》
接着前一篇博文的内容我们开始学习线程的同步和异步相关的内容,很多自学的新手同学可能精力的回避这个问题,其实很简单的,下面先给那些不理解这个概念的同学讲两个关于某人的故事,听完了,你就明白实战出真理的道理了(如果新手从本文中略有所获就支持一下同样是新手的偶,给我个信息知道我没耽误你的时间,当然大家可以给我点建设性的意见和指导)。什么是线程同步? 从前某人混社会的时候,某人第一次去江转载 2013-08-06 09:50:40 · 1901 阅读 · 0 评论 -
C#多线程学习(五) 多线程的自动管理(定时器)
Timer类:设置一个定时器,定时执行用户指定的函数。定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象: Timer timer = new Timer(timerDelegate, s,1000, 1000); // 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要使用的信息的对象原创 2013-08-15 23:47:52 · 3489 阅读 · 0 评论 -
C#多线程学习(四) 多线程的自动管理(线程池)
在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 200原创 2013-08-15 23:47:00 · 3556 阅读 · 0 评论 -
C#多线程学习(三) 生产者和消费者
前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下:原创 2013-08-15 23:45:35 · 3476 阅读 · 0 评论 -
C#多线程学习(二) 如何操纵一个线程
下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。打开你的VS.原创 2013-08-15 23:43:52 · 3602 阅读 · 0 评论 -
C#多线程学习(一) 多线程的相关概念
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务原创 2013-08-15 23:42:51 · 3516 阅读 · 0 评论 -
前线解释多线程之委托《三》
前面的两篇关于多线程的文章大体说了下线程的基础应用就没下文了,一是由于最近专业课作业把人搞得乱七八糟,呵呵,今天继续补充,马上要考试了,或许也是本学期最后一篇,之前一直是直接谈多线程,但是等我做上一篇博文小翻译程序的时候,发现如果处理某些逻辑简单的同/异步程序的时候委托是非常方便,有了前两篇博文的基础,这里就不再解释同步和异步了,但是我会在示例程序中反映出来。 同学在处理跨线程的时候用转载 2013-08-06 09:54:44 · 3745 阅读 · 0 评论 -
WinForm中 事件 委托 多线程的应用【以一个下载进度条为例】
第一步:首先我们创建一个winfor的项目第二步:我们建一个窗体在一个窗体里面 打开一个另外的窗体 另外的窗体有一个按钮 点击后就开始下载 下载完成后 在注册窗体上面 显示下载完成(达到在一个窗体里面修改另外的一个窗体)?privatevoid button1_Click(objectsender, EventArgs e){原创 2013-08-20 22:22:10 · 2238 阅读 · 1 评论 -
前线解释多线程《一》
前些天答应木木同学给写一个多线程的帖子,一直没有时间,今天上课,老师要我看着视频短片问那个属于广告(当然不是针对我一个人,只是偶被点名叫起来回答问题),我靠,对于一个大三广告专业的学生,尼玛严重怀疑我的智商,听你照着书本念了一学期了,现在又要我看着短片说哪个是广告,尼玛坑爹啊,尼玛去问问你家男人估计他都知道那个是广告,对于我们专业的老师,我三年的丰富的听课经验得出的经验就是,浪费学生的生命还TM乐转载 2013-08-06 09:49:25 · 2787 阅读 · 0 评论 -
C#多线程学习(六) 互斥对象
如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待Mutex对象被释放,如果它原创 2013-08-15 23:49:12 · 3638 阅读 · 0 评论