using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;namespace ParameterizedThreadStartCS
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread newThread;
            ParameterizedThreadStart PTS1 = new ParameterizedThreadStart(PrintName);
            newThread = new Thread(PTS1);
            newThread.Name = "Thread 1";
            newThread.Start(10);            ParameterizedThreadStart PTS2 = new ParameterizedThreadStart(PrintNum);
            newThread = new Thread(PTS2);
            newThread.Name = "Thread 2";
            newThread.Start(10);            Console.ReadLine();                
        }        static void PrintName(object times)
        {
            for (int i = 1; i < (int)times +1; i++)
            {
                Console.WriteLine("*****我叫某某某*****\n");
                Thread.Sleep(3000);
            }        }
        static void PrintNum(object times)
        {
            for (int i = 1; i < (int)times + 1; i++)
            {
                Console.WriteLine("*****我的学号是0001*****\n");
                Thread.Sleep(3000);
            }        }
    }
}using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;namespace ParameterizedThreadStartCS
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread newThread;
            ParameterizedThreadStart PTS = new ParameterizedThreadStart(Print);
            for(int i=1;i<3;i++)
    {
console.WriteLine("Thread "+i);
             newThread = new Thread(PTS);
newThread.Name=i.ToString();
             newThread.Start(10);
    }            Console.ReadLine();                
        }        static void Print(object times)
        {
            for (int i = 1; i < (int)times +1; i++)
            {
                Console.WriteLine("*****我叫某某某,我的学号是0001*****\n");
                Thread.Sleep(1);
            }        }
    }
}请问大家,这两段代码区别在哪?都是多线程吗?什么是新线程?上面的代码中有体现吗?谢谢!

解决方案 »

  1.   

    都是多线程
    各自启动了两个新线程
    newThread = new Thread(PTS1); 创建线程
    newThread.Start(10);启动线程本质上两个程序一样。
    如果说有区别的话,
    第一个程序的两个线程各自委托执行了一个方法。
    第二个程序的两个线程委托执行同一个方法。
      

  2.   

    默认就是单线程,即UI的线程上。所以如果你下载文件,或处理大数据时,UI线程会被阻塞,界面会无法响应。
    如果new了一个Thread,让这个Thread去下载文件,UI线程就不会阻塞,能控制进度条了。