.NET 其他命名空间详解
1. 引言
在.NET开发中,有一些命名空间虽然不能自然地归入其他类别,但它们各自都有独特的用途。本文将介绍六个这样的命名空间:System.Threading、System.Globalization、System.SystemProcess、System.Diagnostics、System.Text和System.Text.RegularExpression。
2. 多线程编程(System.Threading)
System.Threading命名空间为编写多线程代码提供了类和接口。
2.1 线程的基本概念
多任务处理是程序员熟悉的概念,在非多核处理器的机器上,多个程序并非真正同时运行,而是处理器给每个程序分配几毫秒的时间片,通过在程序间切换来营造同时运行的假象。线程可以简单理解为与程序其他部分同时执行的函数,函数调用通常是同步的,而启动线程时,调用会立即返回,线程函数与调用代码并行运行。
每个进程至少包含一个主线程,如果不创建更多线程,就是单线程程序;若创建更多线程,则成为多线程程序,此时需要考虑一些问题。每个线程都有与之关联的数据,包括程序栈和寄存器内容,即线程上下文。操作系统在线程间切换时,需要保存当前线程的上下文并加载下一个线程的上下文,这个过程称为上下文切换,会消耗少量但可测量的时间。