当前位置: 首页 > 编程笔记 >

c# Thread类线程常用操作详解

严修谨
2023-03-14
本文向大家介绍c# Thread类线程常用操作详解,包括了c# Thread类线程常用操作详解的使用技巧和注意事项,需要的朋友参考一下

创建线程

线程是通过扩展 Thread 类创建的。扩展的 Thread 类调用 Start() 方法来开始子线程的执行。

下面的程序演示了这个概念:

class ThreadCreationProgram
  {
    public static void CallToChildThread()
    {
      Console.WriteLine("Child thread starts");
    }
    
    static void Main(string[] args)
    {
      ThreadStart childref = new ThreadStart(CallToChildThread);
      Console.WriteLine("In Main: Creating the Child thread");
      Thread childThread = new Thread(childref);
      childThread.Start();
      Console.ReadKey();
    }
  }

当上面的代码被编译和执行时,它会产生下列结果:

In Main: Creating the Child thread
Child thread starts

管理线程

Thread 类提供了各种管理线程的方法。

下面的实例演示了 sleep() 方法的使用,用于在一个特定的时间暂停线程。

class ThreadCreationProgram
  {
    public static void CallToChildThread()
    {
      Console.WriteLine("Child thread starts");
      // 线程暂停 5000 毫秒
      int sleepfor = 5000;
      Console.WriteLine("Child Thread Paused for {0} seconds",
               sleepfor / 1000);
      Thread.Sleep(sleepfor);
      Console.WriteLine("Child thread resumes");
    }
    
    static void Main(string[] args)
    {
      ThreadStart childref = new ThreadStart(CallToChildThread);
      Console.WriteLine("In Main: Creating the Child thread");
      Thread childThread = new Thread(childref);
      childThread.Start();
      Console.ReadKey();
    }
  }

当上面的代码被编译和执行时,它会产生下列结果:

In Main: Creating the Child thread
Child thread starts
Child Thread Paused for 5 seconds
Child thread resumes

销毁线程

Abort() 方法用于销毁线程。

通过抛出 threadabortexception 在运行时中止线程。这个异常不能被捕获,如果有 finally 块,控制会被送至 finally 块。

下面的程序说明了这点:

class ThreadCreationProgram
  {
    public static void CallToChildThread()
    {
      try
      {

        Console.WriteLine("Child thread starts");
        // 计数到 10
        for (int counter = 0; counter <= 10; counter++)
        {
          Thread.Sleep(500);
          Console.WriteLine(counter);
        }
        Console.WriteLine("Child Thread Completed");

      }
      catch (ThreadAbortException e)
      {
        Console.WriteLine("Thread Abort Exception");
      }
      finally
      {
        Console.WriteLine("Couldn't catch the Thread Exception");
      }

    }
    
    static void Main(string[] args)
    {
      ThreadStart childref = new ThreadStart(CallToChildThread);
      Console.WriteLine("In Main: Creating the Child thread");
      Thread childThread = new Thread(childref);
      childThread.Start();
      // 停止主线程一段时间
      Thread.Sleep(2000);
      // 现在中止子线程
      Console.WriteLine("In Main: Aborting the Child thread");
      childThread.Abort();
      Console.ReadKey();
    }
  }

当上面的代码被编译和执行时,它会产生下列结果:

In Main: Creating the Child thread
Child thread starts
0
1
2
In Main: Aborting the Child thread
Thread Abort Exception
Couldn't catch the Thread Exception

以上就是c# Thread类线程常用操作详解的详细内容,更多关于c# Thread类线程的资料请关注小牛知识库其它相关文章!

 类似资料:
  • 本文向大家介绍c# Thread类的用法详解,包括了c# Thread类的用法详解的使用技巧和注意事项,需要的朋友参考一下   Thread类相对于线程池中的线程,使用者有更多的控制权。该类允许创建前台线程,设置线程优先级等。Thread类的构造函数重载为接受ThreadStart和ParameterizedThreadStart类型的委托参数。 1、给线程传递数据   给线程传递数据的两种方式:

  • Core Java提供对多线程程序的完全控制。 您可以开发一个多线程程序,可以根据您的要求完全暂停,恢复或停止。 您可以在线程对象上使用各种静态方法来控制它们的行为。 下表列出了这些方法 - Sr.No. 方法和描述 1 public void suspend() 此方法将线程置于挂起状态,并可以使用resume()方法恢复。 2 public void stop() 此方法完全停止线程。 3 p

  • 本文向大家介绍c# EnumHelper枚举常用操作类,包括了c# EnumHelper枚举常用操作类的使用技巧和注意事项,需要的朋友参考一下 测试代码如下: 调用方式: 其中的cb表示ComboBox对象,你可以替换成你的下拉框对象。

  • 线程(译注:大约是C++11中最激动人心的特性了)是一种对程序中的执行或者计算的表述。跟许多现代计算一样,C++11中的线程之间能够共享地址空间。从这点上来看,它不同于进程:进程一般不会直接跟其它进程共享数据。在过去,C++针对不同的硬件和操作系统有着不同的线程实现版本。如今,C++将线程加入到了标准件库中:一个标准线程ABI。 许多大部头书籍以及成千上万的论文都曾涉及到并发、并行以及线程。在这一

  • 本文向大家介绍Java  Thread多线程详解及用法解析,包括了Java  Thread多线程详解及用法解析的使用技巧和注意事项,需要的朋友参考一下 最全面的java多线程用法解析,如果你对Java的多线程机制并没有深入的研究,那么本文可以帮助你更透彻地理解Java多线程的原理以及使用方法。 1.创建线程 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Run

  • 本文向大家介绍C#线程池操作方法,包括了C#线程池操作方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#线程池操作方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。