您的位置:首页 > 编程语言 > C#

C# 前台线程与后台线程

2016-06-16 10:24 453 查看
由于时间片的原因,虽然所有线程在微观上是串行执行的,但在宏观上可以认为是并行执行。

线程有两种类型:前台和后台。我们可以通过线程属性IsBackground=false来指定线程的前后台属性(默认是前台线程)。

区别是:前台线程的程序,必须等所有的前台线程运行完毕后才能退出;而后台线程的程序,只要前台的线程都终止了,那么后台的线程就会自动结束并推出程序。

用法方向:一般前台线程用于需要长时间等待的任务,比如监听客户端的请求;后台线程一般用于处理时间较短的任务,比如处理客户端发过来的请求信息。

【前台线程】

[csharp] view
plain copy

using System;  

using System.Collections.Generic;  

using System.Text;  

using System.Threading;  

  

namespace Demo  

{  

    class Program  

    {  

        static void Main(string[] args)  

        {  

            Thread aThread = new Thread(threadFunction);  

            Console.WriteLine("Thread is starting...");  

            aThread.Start();  

            Console.WriteLine("Application is terminating...");  

        }  

  

        public static void threadFunction()  

        {  

            Console.WriteLine("Thread is sleeping...");  

            Thread.Sleep(5000);  

            Console.WriteLine("Thread is aborted!");  

        }  

    }  

}  

【后台线程】 

[csharp] view
plain copy

using System;  

using System.Collections.Generic;  

using System.Text;  

using System.Threading;  

  

namespace Demo  

{  

    class Program  

    {  

        static void Main(string[] args)  

        {  

            Thread aThread = new Thread(threadFunction);  

            aThread.IsBackground = true;  

            Console.WriteLine("Thread is starting...");  

            aThread.Start();  

            Console.WriteLine("Application is terminating...");  

        }  

  

        public static void threadFunction()  

        {  

            Console.WriteLine("Thread is sleeping...");  

            Thread.Sleep(5000);  

            Console.WriteLine("Thread is aborted!");  

        }  

    }  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: