zoukankan      html  css  js  c++  java
  • 多线程(四):前台和后台线程

    class Program11
        {
            private static void ExecuteInForeground()
            {
                DateTime start = DateTime.Now;
                var sw = Stopwatch.StartNew();
                Console.WriteLine("Thread {0}: {1}, Priority {2}",
                                  Thread.CurrentThread.ManagedThreadId,
                                  Thread.CurrentThread.ThreadState,
                                  Thread.CurrentThread.Priority);
                do
                {
                    Console.WriteLine("Thread {0}: Elapsed {1:N2} seconds",
                                      Thread.CurrentThread.ManagedThreadId,
                                      sw.ElapsedMilliseconds / 1000.0);
                    Thread.Sleep(500);
                } while (sw.ElapsedMilliseconds <= 5000);
                sw.Stop();
            }
            static void Main(string[] args)
            {
                //停止所有前台线程后,运行时将停止所有后台线程,并关闭。
                var th = new Thread(ExecuteInForeground);
                //设置为后台线程后,主线程执行完毕后,后台线程将停止,此例子中,不会执行到5s就会停止
                //如果是前台线程,将执行到5s才停止
                th.IsBackground = true;
                th.Start();
                Thread.Sleep(1000);
                Console.WriteLine("Main thread ({0}) exiting...",
                                  Thread.CurrentThread.ManagedThreadId);
               // Console.ReadLine();
            }
        }
  • 相关阅读:
    Docker搭建NSQ实时分布式消息集群
    雪花算法
    代码抽象三原则
    PostgreSQL12-主从复制
    logrus日志框架
    Golang中的布隆过滤器
    golang-Json编码解码
    List分组迭代器
    redis-cli命令行远程连接redis服务
    pycharm常用快捷键与设置
  • 原文地址:https://www.cnblogs.com/25miao/p/9865360.html
Copyright © 2011-2022 走看看