C# 前台线程和后台线程
进程会等待所有的前台线程完成后在结束工作,但是如果只剩下后台线程,则会直接结束工作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Diagnostics; namespace testThread { class Program { static void Main(string[] args) { var sampleForegroud = new ThreadSample(10); var sampleBackgroud = new ThreadSample(20); var threadone = new Thread(sampleForegroud.CountNumbers); threadone.Name = "ForegroudThread"; var threadtwo = new Thread(sampleBackgroud.CountNumbers); threadtwo.Name = "BackgroudThread"; threadtwo.IsBackground = true; threadone.Start(); threadtwo.Start(); } } class ThreadSample { private readonly int _iterations; public ThreadSample(int iterations) { _iterations = iterations; } public void CountNumbers() { for (int i = 0; i < _iterations; i++) { Thread.Sleep(TimeSpan.FromSeconds(0.5)); Console.WriteLine("{0} Print {1}", Thread.CurrentThread.Name, i); } } } }

浙公网安备 33010602011771号