真理的基本的属性是_thread和handler区别

真理的基本的属性是_thread和handler区别原文地址:http://blog.csdn.net/luckeryin/article/details/5649144C#中,Thread类有一个IsBackground的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程。个人感觉这样的解释等于没有解释..Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

原文地址:http://blog.csdn.net/luckeryin/article/details/5649144

C#中,Thread类有一个IsBackground 的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程。个人感觉这样的解释等于没有解释.

.Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一的区别就是:后台线程不会防止应用程序的进程被终止掉。呵呵,这句话读出来好像并不那么好懂.其实,说白了就是当前台线程都结束了的时候,整个程序也就结束了,即使还有后台线程正在运行,此时,所有剩余的后台线程都会被停止且不会完成.但是,只要还有一个前台线程没有结束,那么它将阻止程序结束.这就是为什么有些设计不够完美的WinForm程序,在某种特定的情况下,即使所有的窗口都关闭了,但是在任务管理器的管理列表里仍然可以找到该程序的进程,仍然在消耗着CPU和内存资源.因此,在WinForm程序中,关闭所有窗口前,应该停止所有前台线程,千万不要遗忘了某个前台线程.应用程序进程的存亡由前台线程决定而于后台线程无关.这就是它们的区别.

知道了前后台线程的区别,就应该知道如何声明IsBackgroud属性的值了.

值得说明的一点是:改变线程从前台到后台不会以任何方式改变它在CPU协调程序中的优先级和状态。因为前台后线程与程序进程的优先级无关.

结束前摘录MSDN上一段示例码,以帮助大家便好的理解这一区别:

下面的代码示例对比了前台线程与后台线程的行为。创建一个前台线程和一个后台线程。前台线程使进程保持运行,直到它完成它的 while 循环。前台线程完成后,进程在后台线程完成它的 while 循环之前终止。

using System;
using System.Threading;

class Test
{
    static void Main()
    {
        BackgroundTest shortTest = new BackgroundTest(10);
        Thread foregroundThread = 
            new Thread(new ThreadStart(shortTest.RunLoop));
        foregroundThread.Name = "ForegroundThread";

        BackgroundTest longTest = new BackgroundTest(50);
        Thread backgroundThread = 
            new Thread(new ThreadStart(longTest.RunLoop));
        backgroundThread.Name = "BackgroundThread";
        backgroundThread.IsBackground = true;

        foregroundThread.Start();
        backgroundThread.Start();
    }
}

class BackgroundTest
{
    int maxIterations;

    public BackgroundTest(int maxIterations)
    {
        this.maxIterations = maxIterations;
    }

    public void RunLoop()
    {
        String threadName = Thread.CurrentThread.Name;
        
        for(int i = 0; i < maxIterations; i++)
        {
            Console.WriteLine("{0} count: {1}", 
                threadName, i.ToString());
            Thread.Sleep(250);
        }
        Console.WriteLine("{0} finished counting.", threadName);
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181274.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中JDBC是什么?[通俗易懂]

    java中JDBC是什么?[通俗易懂]JDBC是什么?JDBC即(javadatabaseconnectivity数据连接)。JDBC是Sun公司编的一堆类和方法,都封装在java.sql包中。你可以利用这堆类和方法来把你的程序和数据库连通。JDBC的优点:跨数据库性通过使用JDBC,开发人员可以将SQL语句传送给几乎任何一种数据库。不必单独写一个程序访问Sybase,Oracle,或Microsoft的SQLServ…

    2022年6月23日
    21
  • 自监督学习和无监督学习的区别

    自监督学习和无监督学习的区别无监督学习无监督学习不依赖任何标签值,通过对数据内在特征的挖掘,找到样本间的关系,比如聚类相关的任务自监督学习和无监督学习不同,自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。换句话说:自监督学习的监督信息不是人工标注的,而是是通过辅助任务(pretext)在大规模无监督数据中自动构造监督信息,通过得到的标签,就可以类似有监督学习一样进行训练。区别自监督学习是从数据本身找标签来进行

    2022年9月14日
    0
  • altium designer绘制51单片机最小系统

    altium designer绘制51单片机最小系统一、绘制51单片机原理图库新建原理图库,并ctrl+s保存起来2、画出方框,并放置引脚,如下图。注意:画出第一个引脚后,可以双击修改它的编号为1,之后再次放置引脚时,编号会自动从1开始自加。3、在方框的左右两边放置引脚注意:新拖出来的引脚,带x号的一端,为将来要与导线连接的一端,所以,这一端要朝芯片的外部。按下空格键,可以实时修改引脚的方向4、编辑引脚定义。点击右下角的SCH,打开库浏览器,双击我们刚才建立好的这个原理图库文件(默认名称为Component_1…

    2022年6月23日
    48
  • python表白代码大全_python好玩又简单的代码

    python表白代码大全_python好玩又简单的代码想要别出心裁给女朋友准备一个惊喜,就用我们所学过的python代码来写一个表白程序。下面我给大家介绍几个。第一树上心形表白:importturtleimportrandomdeflove(x,y):#在(x,y)处画爱心lalalalv=turtle.Turtle()lv.hideturtle()lv.up()lv.goto(x,y)#定位到(x,y)defcurvemove():#画圆弧foriinr

    2022年9月24日
    0
  • [4G+5G专题-137]: 终端 – 射频前端(滤波器、功率放大器)详解

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:目录第1章射频前端FEM概述第2章滤波器2.1滤波概述2.2SAW:成熟且仍在发展2.3高性能BAW2.4器件市场分析第3章功率放大器3.1功率放大器概述3.2市场格局第1章射频前端FEM概述射频前端聚焦的是调制后的高频(射频)电磁波的功率和带宽。带宽的控制是由滤波器完成的。功率的控制是由PA完成的第2章…

    2022年4月9日
    60
  • Python Flask中的jsonify

    Python Flask中的jsonify#-*-coding:utf-8-*-#@Time:2022/4/1311:46下午#@Author:renwoxing#@File:flask_restful_demo.py#@Software:PyCharmfromflaskimportFlask,jsonify,abort,requestapp=Flask(__name__)books=[{‘id’:1,’name’.

    2022年5月23日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号