暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

C# 线程的基本操作(二)

DotNet工控上位机编程 2021-11-11
199


03  线程的挂起与恢复

       创建完一个线程并启动之后,还可以挂起、恢复、休眠或终止它,下面主要对线程的挂起与恢复进行讲解。
     线程的挂起与恢复分别可以通过调用 Thread 类中的 Suspend 方法和 Resume 方法实现,下面对这两个方法进行详细介绍。
      1.  Suspend 方法
      该方法用来挂起线程,如果线程已挂起,则不起作用。
      语法如下:

      public void Suspend ()

 说明
         调用 Suspend 方法挂起线程时,.NET 允许要挂起的线程再执行几个指令,目的是为了到达.NET 认为线程可以安全挂起的状态
       2. Resume 方法
       该方法用来继续已挂起的线程。
       语法如下:
        public void Resume ()
 说明
        通过 Resume 方法来恢复被暂停的线程时,无论调用了多少次 Suspend 方法,调用 Resume 方法均会使另一个线程脱离挂起状态,并导致该线程继续执行。
      【例3】创建一个控制台应用程序,其中通过实例化 Thread 类对象创建一个新的线程,然后调用 Start 方法启动该线程,之后调用 Suspend 方法和 Resume 方法挂起和恢复创建的线程。
        语法如下:
static void Main(string[] args)
{
     Thread myThread;   //声明线程 
     //用线程起始点的 ThreadStart 委托创建该线程的实例
     myThread = new Thread(new ThreadStart(create Thread));
     myThread.Start();          //启动线程 
     myThread.Suspend();       //挂起线程 
     myThread.Resume(); 
}
public static void createThread() 
{
     Console.Write("创建线程");
}
复制


04  线程休眠

        线程体眠主要通过 Thread  类的 Sleep 方法实现,该方法用来将当前线程阻止指定的时间,它有两种重载形式,下面分别进行介绍。
      (1)将当前线程挂起指定的时间。
      语法如下:
        public static void Sleep(int milliseconds Timeout)
         millisecondsTimeout:线程被阻止的毫秒数。指定零以指示应挂起此线程以使其他等待线程能够执行,指定 Timeout.Infinite 以无限期阻止线程。
       (2)将当前线程阻止指定的时间。
       语法如下:
       public static void Sleep(TimeSpan timeout)
         timeout:线程被阻止的时间量的 TimeSpan。指定零以指示应挂起此线程以使其他等待线程能够执行,指定 Timeout.Infinite 以无限期阻止线程。
       【例4】下面代码用来使当前线程休眠一秒钟。
        Thread.Sleep(1000);                     //使线程休眠一秒钟








END -







关注小编不迷路呦

文章转载自DotNet工控上位机编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论