.NET 框架与多线程

    文章来源:中国互联 更新时间:2013-7-29 10:08:31
分享:

Microsoft.NET代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程结构,它通过使用HTTP,XML等标准,使得各个系统平台间互操作性成为现实,Microsoft.NET最重要部分是.NET框架,.NET框架是一种新的计算平台,它简化了在高度分布式Internet环境中的应用程序开发,它支持超过20种不同的编程语言,它帮助开发人员把精力集中在实现商业逻辑的核心上,使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致,在未来的版本中甚至仅仅在程序发布时才需要指定发布的类型(作为Win Form还是Web Form)。
    .NET框架由2部分组成:公共语言运行时(CLR:是.NET开发人员的源代码和硬件底层之间的 中间媒介,所有的.NET 代码都在CLR中运行)和框架类库(FCL:包括数据访问组件、基础类库以及WebForm、WinForm、Web Services模板)。
    功能特性
    CLR和FCL紧密结合在一起,提供了不同系统之间交叉与综合的解决方案与服务,创造了可控的、安全的、功能丰富的应用开发环境,以下是它们提供的部分功能。
1.一次运行,总能运行
    所有的开发人员几乎都知道“Dll Hell”版本控制问题(当新安装的应用程序的组件覆盖旧有应用程序的组件时,导致旧有程序无法正常运行)。为了彻底消除“DLL Hell”现象,.NET框架的结构已与应用程序组件隔离,应用程序运行时必须加载生成时所用到的组件以确保应用程序总是能正常运行。
2.简化部署
    在.NET框架里软件安装的方式是XCOPY,如同在DOS下一样,只需要将应用程序复制到某个目录就完成了安装,卸载应用程序只需要删除目录。
3.自动内存管理
    对于托管资源您再也不必在类里写析构函数(Finalize)进行清理,垃圾管理(GC)可以自动跟踪资源使用,确保不会产生资源泄漏,实际上GC对Finalize的调用时间和次序是不确定的。但是微软建议用户一定要记得在Dispose 方法里释放非托管资源如数据库连接、文件等。
4.类型安全
    每个对象都是单根继承自Object(注:也有人认为是继承自Iobject接口)以确保在运行时可以通过调用GetType方法可以确定对象的类型,通常强制转换为基类型被认为是安全的隐式转换。CLR可以验证所有代码是否类型安全,类型安全能确保总是以兼容的方式访问被分配对象。
5.编程模型
    以前在Windows平台下进行软件开发的C 开发人员大多使用的是微软基础类库(MFC)或者Win32 APIs,Visual Basic用户使用的是Visual Basic API,Delphi用户使用的是Borland公司的VCL,Java用户使用JDK,彼此之间很难兼容、相互调用,软件开发人员有时也难以取舍,而.NET框架统一了当前各种不同的架构,.NET框架为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的框架类库――FCL,开发人员不再需要学习多种架构只须学习.NET框架就能灵活的采用各种不同的编程语言进行开发,.NET框架还实现了跨语言的继承、错误处理、调试。
   在.NET框架里从C#,VB.NET,J#到C 的所有编程语言都是相互平等的,开发人员可以自由选择自己喜欢的语言,如下不同语言的程序代码:
C#:
class Hello
{
static void Main()//程序的出口点
{
System.Console.Write( "Hello, World!" );//输出Hello, World!
}
}
VB.NET:
Module Hello
    Sub Main() 程序的出口点
        System.Console.Write( "Hello, World!" ) 输出Hello, World!
    End Sub
End Module
在编译器上最终生成的都是如下的IL(中间语言)代码:
IL_0000:  ldstr      "Hello, World!"
IL_0005:  call       void [mscorlib]System.Console::Write(string)
IL_000a:  ret
IL是CLR唯一理解的编程语言,所有的编译器都将源代码编译成IL,IL再被CLR处理。
输出的结果是非常熟悉的:Hello, World!。
      在.NET框架下您不仅可以开发传统的基于Windows平台下的应用,您还可以开发基于Smart Phone、Pocket PC、Tablet PC等等平台下的应用。
      .NET框架提供了强有力的编程模板,可以随心所欲的编写WinForm、WebForm、WebService等类型的程序,这些类型的程序的开发方式与以往有很大的不同,功能也比以往大大加强。其中“最有可能改变世界”的(注:Jeff Prosise语),最令人惊奇的应该是Web Form(ASP.NET)。多线程、GDI 、设计模式、Cache、异常等等这些在以前的Web程序里不敢想象或者很难实现的功能在.NET框架下变得如此的垂手可得。
      ASP.NET几乎天生就是基于MVC模式的,它利用Code-Behind技术轻而易举的把页面(View)和代码(Model && Control)分离,再加上Page Controller,Distributed,Services等模式,可以把程序结构从传统的3层扩充到4层、5层甚至更多层,充分满足开发大型企业级应用的需要(以后有机会将向大家展示ASP.NET结合模式开发令人激动的一面)。利用多线程和GDI 技术可以一边显示文字内容、一边从远程抓取图片并把图片变换为适当的形式(如转换为PNG格式,在图片上记录版权信息)显示给用户,效率比以往大大提高。
      对于相当多的人来说,开发多线程程序是一个相当大的挑战,但.NET框架已对其进行了相当程度的简化,本文的后面部分将向您介绍多线程编程的基础知识,并提供一些用于试验的示例代码。相信您在看了之后会迅速掌握。
为了便于讲解,示例代码采用的是控制台程序。

 

在线咨询
  • 在线时间
  • 8:00-21:00
.NET 框架与多线程-中国互联

.NET 框架与多线程

    文章来源:中国互联 更新时间:2013-7-29 10:08:31
分享:

Microsoft.NET代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程结构,它通过使用HTTP,XML等标准,使得各个系统平台间互操作性成为现实,Microsoft.NET最重要部分是.NET框架,.NET框架是一种新的计算平台,它简化了在高度分布式Internet环境中的应用程序开发,它支持超过20种不同的编程语言,它帮助开发人员把精力集中在实现商业逻辑的核心上,使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致,在未来的版本中甚至仅仅在程序发布时才需要指定发布的类型(作为Win Form还是Web Form)。
    .NET框架由2部分组成:公共语言运行时(CLR:是.NET开发人员的源代码和硬件底层之间的 中间媒介,所有的.NET 代码都在CLR中运行)和框架类库(FCL:包括数据访问组件、基础类库以及WebForm、WinForm、Web Services模板)。
    功能特性
    CLR和FCL紧密结合在一起,提供了不同系统之间交叉与综合的解决方案与服务,创造了可控的、安全的、功能丰富的应用开发环境,以下是它们提供的部分功能。
1.一次运行,总能运行
    所有的开发人员几乎都知道“Dll Hell”版本控制问题(当新安装的应用程序的组件覆盖旧有应用程序的组件时,导致旧有程序无法正常运行)。为了彻底消除“DLL Hell”现象,.NET框架的结构已与应用程序组件隔离,应用程序运行时必须加载生成时所用到的组件以确保应用程序总是能正常运行。
2.简化部署
    在.NET框架里软件安装的方式是XCOPY,如同在DOS下一样,只需要将应用程序复制到某个目录就完成了安装,卸载应用程序只需要删除目录。
3.自动内存管理
    对于托管资源您再也不必在类里写析构函数(Finalize)进行清理,垃圾管理(GC)可以自动跟踪资源使用,确保不会产生资源泄漏,实际上GC对Finalize的调用时间和次序是不确定的。但是微软建议用户一定要记得在Dispose 方法里释放非托管资源如数据库连接、文件等。
4.类型安全
    每个对象都是单根继承自Object(注:也有人认为是继承自Iobject接口)以确保在运行时可以通过调用GetType方法可以确定对象的类型,通常强制转换为基类型被认为是安全的隐式转换。CLR可以验证所有代码是否类型安全,类型安全能确保总是以兼容的方式访问被分配对象。
5.编程模型
    以前在Windows平台下进行软件开发的C 开发人员大多使用的是微软基础类库(MFC)或者Win32 APIs,Visual Basic用户使用的是Visual Basic API,Delphi用户使用的是Borland公司的VCL,Java用户使用JDK,彼此之间很难兼容、相互调用,软件开发人员有时也难以取舍,而.NET框架统一了当前各种不同的架构,.NET框架为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的框架类库――FCL,开发人员不再需要学习多种架构只须学习.NET框架就能灵活的采用各种不同的编程语言进行开发,.NET框架还实现了跨语言的继承、错误处理、调试。
   在.NET框架里从C#,VB.NET,J#到C 的所有编程语言都是相互平等的,开发人员可以自由选择自己喜欢的语言,如下不同语言的程序代码:
C#:
class Hello
{
static void Main()//程序的出口点
{
System.Console.Write( "Hello, World!" );//输出Hello, World!
}
}
VB.NET:
Module Hello
    Sub Main() 程序的出口点
        System.Console.Write( "Hello, World!" ) 输出Hello, World!
    End Sub
End Module
在编译器上最终生成的都是如下的IL(中间语言)代码:
IL_0000:  ldstr      "Hello, World!"
IL_0005:  call       void [mscorlib]System.Console::Write(string)
IL_000a:  ret
IL是CLR唯一理解的编程语言,所有的编译器都将源代码编译成IL,IL再被CLR处理。
输出的结果是非常熟悉的:Hello, World!。
      在.NET框架下您不仅可以开发传统的基于Windows平台下的应用,您还可以开发基于Smart Phone、Pocket PC、Tablet PC等等平台下的应用。
      .NET框架提供了强有力的编程模板,可以随心所欲的编写WinForm、WebForm、WebService等类型的程序,这些类型的程序的开发方式与以往有很大的不同,功能也比以往大大加强。其中“最有可能改变世界”的(注:Jeff Prosise语),最令人惊奇的应该是Web Form(ASP.NET)。多线程、GDI 、设计模式、Cache、异常等等这些在以前的Web程序里不敢想象或者很难实现的功能在.NET框架下变得如此的垂手可得。
      ASP.NET几乎天生就是基于MVC模式的,它利用Code-Behind技术轻而易举的把页面(View)和代码(Model && Control)分离,再加上Page Controller,Distributed,Services等模式,可以把程序结构从传统的3层扩充到4层、5层甚至更多层,充分满足开发大型企业级应用的需要(以后有机会将向大家展示ASP.NET结合模式开发令人激动的一面)。利用多线程和GDI 技术可以一边显示文字内容、一边从远程抓取图片并把图片变换为适当的形式(如转换为PNG格式,在图片上记录版权信息)显示给用户,效率比以往大大提高。
      对于相当多的人来说,开发多线程程序是一个相当大的挑战,但.NET框架已对其进行了相当程度的简化,本文的后面部分将向您介绍多线程编程的基础知识,并提供一些用于试验的示例代码。相信您在看了之后会迅速掌握。
为了便于讲解,示例代码采用的是控制台程序。

 

在线咨询
  • 在线时间
  • 8:00-21:00