• λ我爱Aspx >> Asp.Net >> 在.NET客户端程序中应用多线程
  • 在.NET客户端程序中应用多线程

  • :aspxer  Դ:internet  :2007-5-31 2:19:26  ؼ:.net
  • 在.NET客户端程序中应用多线程

    T客户端程序中应用多线程

    原著:Jason Clark

    翻译:lxhui

    原文出处:MSDN Magazine Jan 2004(.NET)

    原代码下载: NET0401.exe (118KB)

    通常认为在编写程序中用到多线程是一个高级的编程任务,容易发生错误。在本月的栏目中,我将在一个Windows®窗体应用程序中使用多线程,它具有实际的意义,同时尽量使事情简单。我的目标是在一个普通的需求描述中用最好的办法讲解多线程;客户仍然比较喜欢使用户交互方式的应用程序。

    多线程通常和服务器端软件,可扩展性及性能技术联系在一起。 然而,在微软.NET框架中,许多服务器端应用程序都驻留在ASP.NET体系结构中。同样,这些应用程序在逻辑上是单线程的, 因为IIS和ASP.NET在ASP.NET Web Form或Web服务程序中执行了许多或所有的多线程。 在ASP.NET应用程序中你一般可以忽略线程性。 这就是为什么在.NET框架中,多线程更倾向于在客户端使用的一个原因,比如在保证同用户交互的同时而执行一个很长的操作。

    线程背景

    线程执行代码。它们由操作系统实现,是CPU本身的一种抽象。许多系统都只有一个CPU, 线程是把CPU快速的处理能力分开而执行多个操作的一种方法,使它们看起来好像同步似的。即使一个系统由多个CPU, 但运行的线程一般要比处理器多。

    在一个Windows为基础的应用程序中,每一个进程至少要有一个线程,它能够执行机器语言指令。 一旦一个进程的所有线程都中止了,进程本身和它所占用的资源将会被Windows清除。

    许多应用程序都被设计为单线程程序,这意味着该程序实现的进程从来不会有超过一个线程在执行,即使在系统中有多个同样的处理在进行。一般一个进程不会关心系统中其他进程的线程的执行。

    然而,在单个进程里的所有线程不仅共享虚拟地址空间,而且许多进程级的资源也被共享, 比如文件和窗口句柄等。由于进程资源共享的特征,一个线程必须考虑同一进程中其它线程正在做什么。线程同步是在多线程的进程中保持各线程互不冲突的一门艺术。这也使得多线程比较困难。

    Ҷƪл˵?
  • һƪ线程的实现
    һƪ在你的服务器端代码中使用线程和创建异步处理