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

}
}

}
}
View Code
posted @ 2016-07-26 17:21  七夜奈何  阅读(1036)  评论(0)    收藏  举报