using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace CreateThreading
{
class Program
{
//创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。
//(线程入口使程序知道该让这个线程干什么事)
//在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,
//你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,
//当调用C# Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。
public static void Main()
{
Program myCreateThreading = new Program();
myCreateThreading.Start线程();
Console.WriteLine(" 离开请按[ENTER] !!");
Console.Read();
}
int i = 0;
private void Start线程()
{
//ThreadStart 多线程的委托,所委托的方法不能有输入参数,返回值为void
ThreadStart myThreadStart1 = new ThreadStart(PrintOddNumber);//ThreadStart是个线程委托
Thread Threading1 = new Thread(myThreadStart1);//线程依赖委托执行方
Threading1.Name = "A Thread";
ThreadStart myThreadStart2 = PrintNumber;
Thread Threading2 = new Thread(new ThreadStart(myThreadStart2));
Threading2.Name = "B Thread";
Threading2.Start(); //启动第2个线程
Threading1.Start(); //启动第1个线程
}
// 在控制台输出目前线程的名称以及小于1000 的奇数
private void PrintOddNumber()
{
for (int i = 1; i < 1000; i++)
{
if (i % 2 != 0)
Console.WriteLine("线程{0} 输出奇数{1} ",
Thread.CurrentThread.Name, i);
}
}
// 于控制台输出目前线程的名称以及小于1000 的偶数
private void PrintNumber()
{
for (int i = 1; i < 1000; i++)
{
if (i % 2 == 0)
Console.WriteLine("线程{0} 输出偶数{1} ",
Thread.CurrentThread.Name, i);
}
}
}
}