• 线程的属性


    线程的属性

    一、IsBackground

    C#中线程分为前台线程和后台线程:线程创建时不做设置默认是前台线程。即线程属性 

      IsBackground=false;
      Thread.IsBackground = false;//false:设置为前台线程,系统默认为前台线程。 

    前台线程和后台线程区别:应用程序必须运行完所有的前台线程才可以退出,只要有一个前台线程未退出,进程就不会终止!即说的就是程序不会关闭!(即在资源管理器中可以看到进程未结束);而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。
    线程是寄托在进程上的,进程都结束了,线程也就不复存在了!

    二、Threadpool

    采用多线程中最首先得一个问题就是线程的管理。C#中通过Threadpool类来提供一个有系统维护的线程池。在使用同时,我们需要用ThreadPool.QueueUserWorkItem() 将线程添加到线程池中。它的函数原型如下:

       // 将一个线程放进线程池,该线程的 Start() 方法将调用 WaitCallback 代理对象代表的函数 
        public static bool QueueUserWorkItem(WaitCallback);
        // 重载的方法如下,参数 object 将传递给 WaitCallback 所代表的方法 
        public static bool QueueUserWorkItem(WaitCallback, object); 

    注意:因为ThreadPool 类是一个静态类,所以生成它的对象。在整个过程中无需自己建立线程,只需把要做的工作写成函数,然后作为参数传递给ThreadPool.QueueUserWorkItem()方法就行了,传递的方法就是依靠 WaitCallback 代理对象,而线程的建立、管理、运行等工作都是由系统自动完成的,你无须考虑那些复杂的细节问题。

    后续学习继续更新..... 


    技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
    我创建了一个.NET开发交流群,用于分享学习心得和讨论相关技术难题。欢迎有兴趣的小伙伴扫码入群,相互学习!

  • 相关阅读:
    CF 1083 A. The Fair Nut and the Best Path
    2434: [Noi2011]阿狸的打字机
    HDU 6086 Rikka with String
    HDU 2825 Wireless Password
    异常处理与补充模块
    面向对象
    初始socket
    面向对象的进阶(组合和继承)
    初始面向对象
    python之其他模块的用法
  • 原文地址:https://www.cnblogs.com/wml-it/p/14798781.html
Copyright © 2020-2023  润新知