C#中的多线程--持续更新系列
2012-04-12 09:52
330 查看
今年第一次旅行结束,虽然是第二次进去藏区,依旧有高原反应,嚓....不过整个旅途感受到前所未有的放松.更有精力面对接下来的工作和学习.进入今天的主题---C#中的多线程
1、感受多线程
因为文章追求是简单易懂,如果您和我一样,是C#初学者,那么在这一段中,请跟着例子,写一次,每个例子都有分析,并且这里的例子是会把多线程涉及的很多问题先引入出来,在后面的阶段,再深入分析~
C#是支持多线程滴(貌似是废话.)~一个线程有它独立的执行路径,能够与其他的线程“同时”运行,一个C#程式起始于一个单线程,这个线程是被CLR和操作系统自动创建滴。~啰嗦了这么多了,还是用一段简单的代码加以说明
第一个多线程程式
程序运行截图
多线程调用同一个方法,方法中局部变量执行问题
多线程共享实例
多线程中的静态字段
程序运行结果:
修改后的Go方法
在多次执行这个程式,输出done的次数在1和2次之间没规律的切换~
线程安全
我们再试着多次运行程序,会发现只会输出一个done,当两个线程在争夺一个锁的时候(例子中的是locker),一个线程会处于等待或者说是阻止状态知道那个锁变成可用,确保在同一时刻只有一个线程进入了工作区,所以保证只输出了一次done.
在完成上面几个简单的例子之后,我们应该思考,在何时使用多线程~
何时使用多线程
其实这个话题,我想是仁者见仁智者见智了,但核心的思想都是一致的,多线程程序一般被用来在后台处于耗时的任务,主线程保持运行,并且工作线程在后台默默无闻的工作,对于Winform程序来说,如果主线程(UI线程)执行一段耗时操作的代码,键盘和鼠标的操作会变得很迟钝,时间稍微长点,就整个程序就失去了响应。
摘要: 今年第一次旅行结束,虽然是第二次进去藏区,依旧有高原反应,嚓....不过整个旅途感受到前所未有的放松.更有精力面对接下来的工作和学习.进入今天的主题---C#中的多线程1、感受多线程因为文章追求是简单易懂,如果您和我一样,是C#初学者,那么在这一段中,请跟着例子,写一次,每个例子都有分析,并且这里的例子是会把多线程涉及的很多问题先引入出来,在后面的阶段,再深入分析~C#是支持多线程滴(貌似是废话.)~一个线程有它独立的执行路径,能够与其他的线程“同时”运行,一个C#程式起始于一个单线程,这个线程是被CLR和操作系统自动创建滴。~啰嗦了这么多了,还是用一段简单的代码加以说明第一个多线程程式 ..阅读全文
posted @ 2012-04-12 07:13 wolfram 阅读(214) | 评论 (1) 编辑
.Net下Attribute的特性简单入门
摘要: 已经工作了2个多月,请了几天假,凑足10天,给自己安排一次旅行,虽然是下午的航班,但凌晨就睡不着,跑起来收拾好东西后,毫无睡意.so..有了这篇博文我相信不少初学者,和我一样,经常看到以下这样的代码对于图示中红线标注的东西,通过查阅资料,知道叫Attribute(特性).于是Google、百度一番,似乎说这个话题的博文不少,估计看完了也是云里雾里的。ok...鄙人就冒昧,用最简单的办法来尝试学习下Attribute.1、Attribute到底是什么?先不要去看那些一大段的文字说明,Attribute翻译过来:(推荐使用百度的翻译.不错...下面的翻译结果引用自百度词典)attribute1..阅读全文
posted @ 2012-04-01 05:59 wolfram 阅读(1902) | 评论 (21) 编辑
1、感受多线程
因为文章追求是简单易懂,如果您和我一样,是C#初学者,那么在这一段中,请跟着例子,写一次,每个例子都有分析,并且这里的例子是会把多线程涉及的很多问题先引入出来,在后面的阶段,再深入分析~
C#是支持多线程滴(貌似是废话.)~一个线程有它独立的执行路径,能够与其他的线程“同时”运行,一个C#程式起始于一个单线程,这个线程是被CLR和操作系统自动创建滴。~啰嗦了这么多了,还是用一段简单的代码加以说明
第一个多线程程式
程序运行截图
多线程调用同一个方法,方法中局部变量执行问题
多线程共享实例
多线程中的静态字段
程序运行结果:
修改后的Go方法
在多次执行这个程式,输出done的次数在1和2次之间没规律的切换~
线程安全
我们再试着多次运行程序,会发现只会输出一个done,当两个线程在争夺一个锁的时候(例子中的是locker),一个线程会处于等待或者说是阻止状态知道那个锁变成可用,确保在同一时刻只有一个线程进入了工作区,所以保证只输出了一次done.
在完成上面几个简单的例子之后,我们应该思考,在何时使用多线程~
何时使用多线程
其实这个话题,我想是仁者见仁智者见智了,但核心的思想都是一致的,多线程程序一般被用来在后台处于耗时的任务,主线程保持运行,并且工作线程在后台默默无闻的工作,对于Winform程序来说,如果主线程(UI线程)执行一段耗时操作的代码,键盘和鼠标的操作会变得很迟钝,时间稍微长点,就整个程序就失去了响应。
04 2012 档案
C#中的多线程--持续更新系列摘要: 今年第一次旅行结束,虽然是第二次进去藏区,依旧有高原反应,嚓....不过整个旅途感受到前所未有的放松.更有精力面对接下来的工作和学习.进入今天的主题---C#中的多线程1、感受多线程因为文章追求是简单易懂,如果您和我一样,是C#初学者,那么在这一段中,请跟着例子,写一次,每个例子都有分析,并且这里的例子是会把多线程涉及的很多问题先引入出来,在后面的阶段,再深入分析~C#是支持多线程滴(貌似是废话.)~一个线程有它独立的执行路径,能够与其他的线程“同时”运行,一个C#程式起始于一个单线程,这个线程是被CLR和操作系统自动创建滴。~啰嗦了这么多了,还是用一段简单的代码加以说明第一个多线程程式 ..阅读全文
posted @ 2012-04-12 07:13 wolfram 阅读(214) | 评论 (1) 编辑
.Net下Attribute的特性简单入门
摘要: 已经工作了2个多月,请了几天假,凑足10天,给自己安排一次旅行,虽然是下午的航班,但凌晨就睡不着,跑起来收拾好东西后,毫无睡意.so..有了这篇博文我相信不少初学者,和我一样,经常看到以下这样的代码对于图示中红线标注的东西,通过查阅资料,知道叫Attribute(特性).于是Google、百度一番,似乎说这个话题的博文不少,估计看完了也是云里雾里的。ok...鄙人就冒昧,用最简单的办法来尝试学习下Attribute.1、Attribute到底是什么?先不要去看那些一大段的文字说明,Attribute翻译过来:(推荐使用百度的翻译.不错...下面的翻译结果引用自百度词典)attribute1..阅读全文
posted @ 2012-04-01 05:59 wolfram 阅读(1902) | 评论 (21) 编辑
相关文章推荐
- C#中的多线程--持续更新系列
- C#中级-常用多线程操作(持续更新)
- (转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例
- C# 字符串,数组,日期常遇到的处理方法(持续更新)
- C# 字符串,数组,日期常遇到的处理方法(持续更新)
- Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]
- 如何写一个完美的socket多线程通信程序 ?(持续更新中...)
- jQuery1.6.1源码分析系列(持续更新)
- [叩响C#之门]写给初学者:多线程系列(三)——线程的优先级
- C#在处理多线程更新到UI控件的多种方法
- Swift对比Objective-C系列(持续更新中……)
- 每天一题LeetCode系列(有翻译,注释,持续更新~)
- [收藏]网上搜集的一系列C#面试题(持续更新……)
- iOS开发系列文章(持续更新……)
- C#基础系列——多线程的常见用法详解
- 【摘抄】meta系列用法总结【持续更新中】
- 一点一点学ASP.NET系列(持续更新)
- C# 字符串,数组,日期常遇到的处理方法(持续更新)
- C# 字符串,数组,日期常遇到的处理方法(持续更新)
- 应用框架的设计与实现学习手札系列(持续更新)