前臺線程和后臺線程的區(qū)別
區(qū)別:主要在終止和回收機(jī)制。當(dāng)進(jìn)程退出時鸠天,前臺線程需要執(zhí)行完才會結(jié)束箫柳,無法隨進(jìn)程的退出而自動終止手形,而且句柄還在,不會被回收(盡管關(guān)閉了應(yīng)用程序悯恍,但任務(wù)管理器能看到進(jìn)程還在) 库糠,而后臺線程則會自動終止和回收。只不過當(dāng)進(jìn)程退出時涮毫,因?yàn)檫M(jìn)程資源已經(jīng)部分回收瞬欧,還是可能會影響相關(guān)線程的繼續(xù)執(zhí)行。
設(shè)置方式: thread創(chuàng)建線程時罢防,默認(rèn)是前臺線程,設(shè)置后臺線程可通過設(shè)置屬性
IsBackground=true
來實(shí)現(xiàn)艘虎,threadpool和task默認(rèn)都是后臺線程,task可以通過Thread.CurrentThread.IsBackground=false
來設(shè)置為前臺線程咒吐。應(yīng)用:可以根據(jù)它終止和回收的特點(diǎn)來應(yīng)用野建,對于必須等到線程退出后才能讓進(jìn)程退出的属划,就用前臺線程,否則就用后臺線程贬墩。