当前位置: 首页 > article >正文

C# 线程介绍

一、前台线程与后台线程

1)一个进程可以有至少一个前台线程和任意个后台线程。只要有1个前台线程在运行,应用程序的进程都在运行。 当所有前台程序都结束,进程也就结束。CLR会终止该进程下的所有后台线程,可能导致该后台线程中的比如finally都来不及执行。

2)默认情况下,用Thread创建的前台进程都是前台线程,

3)可用isBackground= true.可以设置为后台

下例中,因为Main函数启动线程后就结束了。如果线程是前台线程那么会等待其执行完毕;如果线程是后台线程,会在main函数结束后立即结束。

 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);
     }
 }

class Program
{
    static void Main(string[] args)
    {
        //bool bTestBackground = false;  //测试前台程序
        bool bTestBackground = true; //测试后台程序

        if (bTestBackground==false)
        {
            Console.WriteLine("测试前台程序"         );
            BackgroundTest TestObject = new BackgroundTest(20);
            Thread foregroundThread =
                new Thread(new ThreadStart(TestObject.RunLoop));
            foregroundThread.Name = "ForegroundThread";
            foregroundThread.Start();
        }
       else
        {
            Console.WriteLine("测试后台程序");
            BackgroundTest TestObject = new BackgroundTest(20);
            Thread backgroundThread =
                new Thread(new ThreadStart(TestObject.RunLoop));
            backgroundThread.Name = "BackgroundThread";                
            backgroundThread.IsBackground = true;  //以下这行注释与否,可以区别前台以及后台程序
            backgroundThread.Start();
        }               
    }
}


http://www.kler.cn/a/600370.html

相关文章:

  • 调用百度api实现语音识别(python)
  • python如何获取html中附件链接,并下载保存附件
  • 珍珠港海军造船厂的“水魔法”:PcVue赋能造船心脏
  • 特征工程自动化(FeatureTools实战)
  • 前端Tailwind CSS面试题及参考答案
  • 股指期货贴水波动,影响哪些投资策略?
  • 编译原理 pl0 词法解析器 使用状态机与状态矩阵,和查找上一步得到分析
  • JAVA 单调栈习题解析
  • 清华大学.智灵动力-《DeepSeek行业应用实践报告》附PPT下载方法
  • Hadoop集群搭建(hdfs、yarn)
  • 【差分隐私相关概念】约束下的矩阵机制
  • 六十天前端强化训练之第二十四天之Vue 模板语法与 v-for 指令大师级详解
  • TG电报群管理机器人定制开发的重要性
  • SQL GROUP BY 自定义排序规则
  • Java面试黄金宝典11
  • Charles汉化步骤 charles中文版怎么用
  • 诊断过拟合的方法及解决方法
  • ZW3D二次开发_非模板表单_输入框类控件_逐字符回调
  • qt的slider样式定制
  • 从 0 到 1 构建 Python 分布式爬虫,实现搜索引擎全攻略