using System;
using System.Threading;namespace SimpleThreadDemo
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Thread.CurrentThread.Name="主线程";
Thread objThread=new Thread(new ThreadStart(ActionMethod));
objThread.Name="子线程";
//开始子线程
//并为该线程执行ActionMethod
objThread.Start();
//为主线程执行ActionMethod
ActionMethod();
}
//是否有次序?
static void ActionMethod()
{
for(int count=1;count<=10;count++)
{
Console.WriteLine("线程名:"+Thread.CurrentThread.Name);
}
}
}
}

解决方案 »

  1.   

    new ThreadStart(ActionMethod)
    //为主线程执行ActionMethod
    ActionMethod();
    二者的区别在什么地方呢?请高手赐教!
      

  2.   

    TO:二者的区别在什么地方呢?没太明白,不都是在调用这个方法吗?楼主看到的现象是不是总是子线程执行完了,才会执行主线程?其实两个都同时在执行,只不过先启动的子线程,所以子线程最先抢占到时间片,由于你循环的次数太少,所以在分配的一个时间片中已运行结束..你可以作一下改变,比如增大循环的次数,或者打印一次,休眠1ms..
      

  3.   

    static void Main(string[] args)
            {
                Thread.CurrentThread.Name = "主线程";
                Thread objThread = new Thread(new ThreadStart(ActionMethod));
                objThread.Name = "子线程";
                //开始子线程
                //并为该线程执行ActionMethod
                objThread.Start();
                //为主线程执行ActionMethod
                ActionMethod();
            }
            static void ActionMethod()
            {
                for (int count = 1; count <= 10; count++)
                {
                    Console.WriteLine("线程名:" + Thread.CurrentThread.Name);
                    Thread.Sleep(1);
                }
            }输出:
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程
    线程名:主线程
    线程名:子线程