1. 程式人生 > >多線程(三):檢索線程對象

多線程(三):檢索線程對象

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(); } }

多線程(三):檢索線程對象