急。。。
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