Thread.Join( ) 线程理解分析
引用 博客主 slikyn 的博客文章 :
http://www.cnblogs.com/slikyn/articles/1525940.html
引用 博客主 平安的 的博客文章:
http://www.cnblogs.com/xzp/archive/2008/01/11/1034601.html
和网站51CTO的内容: http://book.51cto.com/art/200806/77379.htm
自己理解后填写的代码解析、补充等等:
using System;
using System.Collections.Generic;
// using System.Linq;
using System.Text;
using System.Threading;
namespace Test
{
class TestThread
{
//TestThread类里面创建的函数,用于新线程的执行代码!
public static void Thread2()
{
for(int i=0;i<10;i++)
{
//Thread.Current.Name为using System.Threading类中的获取当前线程的名字!
Console.WriteLine(Thread.CurrentThread.Name + "i=" + i);
}
Console.WriteLine(Thread.CurrentThread.Name + "has finished!!!");
}
//TestThread类中的主函数完成对线程Thread2函数的调用和自身main函数线程的执行!
static void Main(string[] args)
{
//对自身main函数这个系统创建的进程进行命名,且新线程的执行部分,即new ThreadStart开始部分为类TestThread的Thread2函数;
//后来想想线程里面东西就是一些可执行的一些代码过程,并不是很神秘的东西,开始还以为挺神秘的;说简单一点就是Thread的使用问题!
Thread.CurrentThread.Name="Main Thread";
Thread newThread=new Thread(new ThreadStart(TestThread.Thread2));
newThread.Name="NewThread";
for(int j=0;j<20;j++)
{
if(j==10)
{
//前提是j执行到10的时候开始调用新线程!!!!!
//新线程初始化后join方法暂停mainThread,去调用newThread,而newThread开始地方就是threadstart.Thread2函数!
newThread.Start();
newThread.Join();
}
else Console.WriteLine(Thread.CurrentThread.Name + "j=" + j);
}
Console.ReadLine();
}
}
}
测试结果: