进程会等待所有的前台线程完成后在结束工作,但是如果只剩下后台线程,则会直接结束工作
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();
var sampleBackgroud = new ThreadSample();
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 = ; i < _iterations; i++)
{
Thread.Sleep(TimeSpan.FromSeconds(0.5));
Console.WriteLine("{0} Print {1}", Thread.CurrentThread.Name, i); }
} }
}