多線程(三):檢索線程對象
阿新 • • 發佈:2018-10-28
rgs main 停止 單獨 () read div 替代 主線程
class Program9 { //檢索線程對象 //停止所有前臺線程後,運行時將停止所有後臺線程,並關閉。 static Object obj = new Object(); private static void ShowThreadInformation(Object state) { lock (obj) { var th = Thread.CurrentThread; Console.WriteLine("Managed thread #{0}: ", th.ManagedThreadId); Console.WriteLine(" Background thread: {0}", th.IsBackground); Console.WriteLine(" Thread pool thread: {0}", th.IsThreadPoolThread); Console.WriteLine(" Priority: {0}", th.Priority); Console.WriteLine(" Culture: {0}", th.CurrentCulture.Name); Console.WriteLine(" UI culture: {0}", th.CurrentUICulture.Name); Console.WriteLine(); } } static void Main(string[] args) { //從非托管代碼進入托管的執行環境的所有線程--->後臺線程 //替代:在線程池線程上自動執行基於任務的異步操作。 使用基於任務的異步操作Task並Task<TResult>類以實現基於任務的異步模式。//線程池創建的線程都為 後臺線程 ThreadPool.QueueUserWorkItem(ShowThreadInformation); //主線程調用Thread構造函數創建的線程都為 前臺線程 var th1 = new Thread(ShowThreadInformation); th1.Start(); var th2 = new Thread(ShowThreadInformation); //主線程調用Thread構造函數創建的線程 可單獨設置為後臺線程 th2.IsBackground = true; th2.Start(); Thread.Sleep(500); //主線程直接調用的均為 前臺線程 ShowThreadInformation(null); Console.ReadLine(); } }
多線程(三):檢索線程對象