// 前台线程和后台线程
// 默认情况下,用Thread类创建的线程是前台线程。线程池中的线程总是后台线程。
// 用Thread类创建线程的时候,可以设置IsBackground属性,表示一个后台线程。
// 前台线程在主函数运行结束后依旧执行,后台线程在主函数执行完毕后不再执行
// DownloadTool类
class DownloadTool{public string URL { get; private set; }public string Message { get; private set; }public DownloadTool(string uRL, string message){URL = uRL;Message = message;}public void Download(){Console.WriteLine("从" + URL + "中下载");}}
// 主程序
class Program{static void Main(string[] args){DownloadTool download = new DownloadTool("http://www……", "manager");Thread t = new Thread(download.Download); t.Start(); // 从http://www……中下载// 前台线程和后台线程// 默认情况下,用Thread类创建的线程是前台线程。线程池中的线程总是后台线程。// 用Thread类创建线程的时候,可以设置IsBackground属性,表示一个后台线程。// 前台线程在主函数运行结束后依旧执行,后台线程在主函数执行完毕后不再执行var t1 = new Thread(ThreadMain) { IsBackground = true };t1.Start();Console.WriteLine("Main thread ending now.");//Main thread ending now.//Thread + stared // 线程同步有一定的时间运行}static void ThreadMain(){Console.WriteLine("Thread +" + Thread.CurrentThread.Name + "stared");Thread.Sleep(2000);Console.WriteLine("Thread +" + Thread.CurrentThread.Name + "end");}}