.Net Thread 类型与演进

system.Threading.Thread
                .ThreadPool
                .Tasks.Task
                .Tasks.Task<TResult>(有泛型返回结果,但没有泛型输入)
                .Tasks.TaskFactory
                .Tasks.TaskScheduler

.net 版本

.net| clr | year | vs ——- | ——- | ——- | ——- 1.0 | 1.0 | 2002 | 2.0 | 2.0 | 2005 | vs2005 3.5 | 2.0 | 2009 | 4.0 | 4.0 | 2010 | vs2010 4.5 | 4.0 | 2012 | vs2012 4.5.1 | 4.0 | 2013 | vs2013 4.6 | 4.0 | 2015 | vs2015 4.7 | 4.0 | 2017 | vs2017

Thread

Thread类默认创建的是前台线程,所以我们前面创建的线程全部都是前台线程。只要有一个前台线程在运行,应用程序的进程就在运行。如果有多个前台线程在运行,而Main()方法(主线程)结束了,应用程序的进程就仍然是激活的,直到所有前台线程完成其任务为止

那后台线程呢?显然和前台线程相反。当主线程结束后,应用程序的进程就终止了,在所有前台线程结束后,后台线程就会被终止。

Task

.net 4.0版本中引入

lambda 表达式

  • Func<…>
  • Action<…>
  • Expression<…>