[ASP.NET MVC 大牛之路 ]03 - C# 高级知识点概要 (2) - 线程和并发
我也想过跳过 C#高级知识点概要直接讲 MVC,但经过前思后想,还是觉得有必要讲的。我希望通过自己的经验给大家一
些指引,带着大家一起走上 ASP.NET MVC 大牛之路,少走弯路。同时也希望能和大家一起交流,这样也能发现我自己的
不足,对我自己的帮助也是非常大的。
建议大家对 C#撑握的不错的时候,可以去看一些开源项目。走技术这条路,就要耐得住寂寞(群里双休日说要让群主找妹
子进群的人必须反思),练好内功。不撑握 C#高级知识点,别想看懂优秀的开源项目,更别指望吸收其编程思想;你的水
平,随时可以被一个实习生代替!切记不能浮躁!
本文讲线程和并发,这块知识点太多太多了,不可能用一篇文章写的面面具到(本身主题就是 C#高级知识概要嘛),我所
了解的也有限。但对于 Web 开发,我想本文的知识点应该足够,如果后面有遇到本文没讲的,后面再补充吧。
本文目录:
线程的简单使用
并发和异步的区别
并发控制 - 锁
线程的信号机制
线程池中的线程
案例:支持并发的异步日志组件
结语
线程的简单使用
常见的并发和异步大多是基于线程来实现的,所以本文先讲线程的简单使用方法。
使用线程,我们需要引用 System.Threading 命名空间。创建一个线程最简单的方法就是在 new 一个 Thread,并传递
一个 ThreadStart 委托(无参数)或 ParameterizedThreadStart 委托(带参数),如下:
class Program {
static void Main(string[] args) {
// 使用无参数委托 ThreadStart
Thread t = new Thread(Go);
t.Start();
// 使用带参数委托 ParameterizedThreadStart
Thread t2 = new Thread(GoWithParam);
t2.Start("Message from main.");
t2.Join();// 等待线程 t2 完成。
Console.WriteLine("Thread t2 has ended!");
Console.ReadKey();
}
static void Go() {
评论0