当前位置:编程学习 > C#/ASP.NET >>

急。。。

using System; 
using System.Threading; 
using System.Collections.Generic; 
using System.Text; 
namespace RunThreads 

    public class Class1 
    { 
        static void Main(string[] args) 
        { 
            Thread.CurrentThread.Name = "MAIN"; 
            Console.WriteLine("[{0}] Hello.",Thread.CurrentThread.Name); 
            Thread workerThread=new Thread(new ThreadStart(WorkerMethod)); 
            workerThread.Name = "WORKER"; 
            Console.WriteLine("[{0}] Create the new worker thread,{1}",Thread.CurrentThread.Name,workerThread.Name); 
            workerThread.Start();//这里有点小困惑,是不是这里直接用Start()就可以直接运行被委托的方法了。 
            while(workerThread.IsAlive)//是不是这里加上子线程后判断时候存在后,就开始自动打印出来了。 
            { 
            } 
            Console.WriteLine("Looks like the worker thread finished its job."); 
            Console.ReadLine(); 
        } 
        static void WorkerMethod() 
        { 
            for (int i = 0; i < 20;i++ ) 
            { 
                Console.WriteLine("[{0}] Doing some work.",Thread.CurrentThread.Name); 
            } 
        } 
    } 


运行结果如下 

两个问题: 
一、workerThread.Start();//这里有点小困惑,是不是这里直接用Start()就可以直接运行被委托的方法WorkerMethod()了,感觉似乎很难懂,而且打印出的怎么是在循环里面出现的。急 
二、while(workerThread.IsAlive)//是不是这里加上子线程后判断时候存在后,就开始自动打印出来了。 
--------------------编程问答-------------------- 1.实例化一个新线程workerThread,执行start()之后,就有一个非主线程(workerThread)去执行WorkerMethod()方法,主线程继续往下执行。
2.用while(workerThread.IsAlive)意思是如果线程workerThread没有被杀死(absort())或者是活着就一直执行循环,什么也不做,直到这个线程workerThread死掉了之后再执行Console.WriteLine("Looks like the worker thread finished its job."); 
            Console.ReadLine(); 


while循环知道吗?条件为真就一直执行
while(workerThread.IsAlive)//是不是这里加上子线程后判断时候存在后,就开始自动打印出来了。 
这句的下面的大括号中
{

}
什么都没有就什么都不干。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,