科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件多线程在Visual C#网络编程中的应用

多线程在Visual C#网络编程中的应用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Visual C#中使用的线程都是通过自命名空间System.Threading中的Thread类经常实例化完

作者:阿虎 来源:yesky 2007年11月13日

关键字: 多线程 Visual C# 网络编程 应用

  • 评论
  • 分享微博
  • 分享邮件
网络应用程序的一般都会或多或少的使用到线程,甚至可以说,一个功能稍微强大的网络应用程序总会在其中开出或多或少的线程,如果应用程序中开出的线程数目大于二个,那么就可以把这个程序称之为多线程应用程序。那么为什么在网络应用程序总会和线程交缠在一起呢?这是因为网络应用程序在执行的时候,会遇到很多意想不到的问题,其中最常见的是网络阻塞和网络等待等。

  程序在处理这些问题的时候往往需要花费很多的时间,如果不使用线程,则程序在执行时的就会表现出如运行速度慢,执行时间长,容易出现错误、反应迟钝等问题。而如果把这些可能造成大量占用程序执行时间的过程放在线程中处理,就往往能够大大提高应用程序的运行效率和性能和获得更优良的可伸缩性。那么这是否就意味着应该在网络应用程序中广泛的使用线程呢?情况并非如此,线程其实是一把双刃剑,如果不分场合,在不需要使用的地方强行使用就可能会产生许多程序垃圾,或者在程序结束后,由于没有能够销毁创建的进程而导致应用程序挂起等问题。

  所以如果你认为自己编写的代码足够快,那我给你的建议还是别使用线程或多线程。这里要提醒诸位的是如果您对在Windows下的线程和其执行原理和机制还不十分清楚,可以先参阅一下介绍Windows操作系统方面的书籍,它们一般都会对其进行比较详细的阐述。然后再阅读本文。

  一.简介在Visual C#中创建和使用线程:

  Visual C#中使用的线程都是通过自命名空间System.Threading中的Thread类经常实例化完成的。通过Thread类的构造函数来创建可供Visual C#使用的线程,通过Thread中的方法和属性来设定线程属性和控制线程的状态。以下Thread类中的最典型的构造函数语法,在Visual C#中一般使用这个构造函数来创建、初始化Thread实例。

public Thread (
 ThreadStart start
) ;

  参数

  start ThreadStart 委托,它将引用此线程开始执行时要调用的方法。

  Thread还提供了其他的构造函数来创建线程,这里就不一一介绍了。表01是Thread类中的一些常用的方法及其简要说明:

方法 说明
Abort 调用此方法通常会终止线程,但会引起ThreadAbortException类型异常。
Interrupt 中断处于WaitSleepJoin 线程状态的线程。
Join 阻塞调用线程,直到某个线程终止时为止。
ResetAbort 取消当前线程调用的Abor方法。
Resume 继续已挂起的线程。
Sleep 当前线程阻塞指定的毫秒数。
Start 操作系统将当前实例的状态更改为ThreadState.Running。
Suspend 挂起线程,或者如果线程已挂起,则不起作用。
              表01:Thread类的常用方法及其说明

  这里要注意的是在.Net中执行一个线程,当线程执行完毕后,一般会自动销毁。如果线程没有自动销毁可通过Thread中的Abort方法来手动销毁,但同样要注意的是如果线程中使用的资源没有完全销毁,Abort方法执行后,也不能保证线程被销毁。在Thread类中还提供了一些属性用以设定和获取创建的Thread实例属性,表02中是Thread类的一些常用属性及其说明:

属性 说明
CurrentCulture 获取或设置当前线程的区域性。
CurrentThread 获取当前正在运行的线程。
IsAlive 获取一个值,该值指示当前线程的执行状态。
IsBackground 获取或设置一个值,该值指示某个线程是否为后台线程。
Name 获取或设置线程的名称。
Priority 获取或设置一个值,该值指示线程的调度优先级。
ThreadState 获取一个值,该值包含当前线程的状态。
             表02:Thread类的常用属性及其说明
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章