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

 更新时间:2021年03月12日 08:55:24   作者:UP技术控  
这篇文章主要介绍了c# Thread类线程常用操作详解的相关资料,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下

创建线程

线程是通过扩展 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#在PDF文件添加图片印章

    如何使用C#在PDF文件添加图片印章

    文档中添加印章可以起一定的作用,比如,防止文件随意被使用,或者确保文档内容的安全性和权威性。C#添加图片印章其实也有很多实现方法,这里我使用的是免费的第三方软件Free Spire.PDF,向大家阐述如何以编程的方式在PDF文件中添加图片印章
    2017-01-01
  • Unity调用手机摄像机识别二维码

    Unity调用手机摄像机识别二维码

    这篇文章主要为大家详细介绍了Unity调用手机摄像机识别二维码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • C#模拟实现QQ窗体功能

    C#模拟实现QQ窗体功能

    这篇文章主要为大家详细介绍了如何通过C#实现类似QQ窗体的功能,当窗体放置到屏幕的边缘,可以将窗体隐藏,当鼠标再次放置到屏幕边缘时,窗体可再次显示,需要的可以参考一下
    2022-12-12
  • VSCode配置C#运行环境的完整步骤

    VSCode配置C#运行环境的完整步骤

    这篇文章主要给大家介绍了关于VSCode配置C#运行环境的完整步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • C# 文字代码页 文字编码的代码页名称速查表

    C# 文字代码页 文字编码的代码页名称速查表

    最近有项目需要用到韩语,日语的编码转换,最重要的就是需要一个代码页的对照,找了一下,最新的代码页或者说编码表如下
    2011-11-11
  • C#将时间转成文件名使用方法

    C#将时间转成文件名使用方法

    C#将时间转成文件名用到的是DateTime类的ToFileTime方法,下面看使用方法吧
    2014-01-01
  • C#日期格式字符串的相互转换操作实例分析

    C#日期格式字符串的相互转换操作实例分析

    这篇文章主要介绍了C#日期格式字符串的相互转换操作,结合实例形式分析了C#日期格式字符串的相互转换操作函数与相关使用技巧,需要的朋友可以参考下
    2019-08-08
  • C# using三种使用方法

    C# using三种使用方法

    这篇文章主要为大家详细介绍了C# using三种使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • asp.net新闻列表生成静态页之批量和单页生成

    asp.net新闻列表生成静态页之批量和单页生成

    web程序的高访问量、大数据量、高效的用户体验度,使静态页技术在越来越多的网站上发挥作用。这篇文章主要介绍asp.net新闻列表生成静态页之批量和单页生成,有需要的朋友可以参考下
    2015-08-08
  • Quartz.Net实现原理及使用方法详解

    Quartz.Net实现原理及使用方法详解

    这篇文章主要介绍了Quartz.Net实现原理及使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12

最新评论