前台线程和后台线程的区别
区别:主要在终止和回收机制。当进程退出时,前台线程需要执行完才会结束,无法随进程的退出而自动终止,而且句柄还在,不会被回收(尽管关闭了应用程序,但任务管理器能看到进程还在) ,而后台线程则会自动终止和回收。只不过当进程退出时,因为进程资源已经部分回收,还是可能会影响相关线程的继续执行。
设置方式: thread创建线程时,默认是前台线程,设置后台线程可通过设置属性
IsBackground=true
来实现,threadpool和task默认都是后台线程,task可以通过Thread.CurrentThread.IsBackground=false
来设置为前台线程。应用:可以根据它终止和回收的特点来应用,对于必须等到线程退出后才能让进程退出的,就用前台线程,否则就用后台线程。