//Task t = new Task();//(方法一)
//Thread t = new Thread();//(方法二)
//TaskFactory tf = new TaskFactory();//(方法三)
//通过委托 开启一个线程 //(方法四)
//VS新建控制台脚本
.
.
.
namespace XianCheng
{
class Program
{
static void Main(string[] args)
{
//传递一个需要线程去执行的方法
Task t = new Task(ThreadMethod);//(方法一)
//Thread t = new Thread(ThreadMethod);//(方法二)
//开启线程
t.Start();
//进程窗口保留
Console.ReadKey();
}
static void ThreadMethod()
{
//打印 线程随机ID地址
Console.WriteLine("线程开启:" + Thread.CurrentThread.ManagedThreadId);
//休眠3秒
Thread.Sleep(3000);
Console.WriteLine("线程结束");
}
}
}
.
.
.
.
.
//采用任务工程的方法 :
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
//采用任务工程的方法
TaskFactory tf = new TaskFactory();
//建立线程
Task t1 = tf.StartNew(TheadMethod);
Task t2 = tf.StartNew(TheadMethod);
Console.WriteLine("Main");
Console.ReadKey();
}
static void TheadMethod()
{
Console.WriteLine("线程开启:" + Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(2000);
Console.WriteLine("线程结束");
}
}
}
.
.
.
.
.
//通过委托 开启一个线程
namespace XianCheng
{
class Program
{
static void Main(string[] args)
{
//无参数
//Action a = Test;
//a.BeginInvoke(null, null);
//Console.WriteLine("Main");
//Console.ReadKey();
//有参数
//通过委托 开启一个线程
Func<int, string,int> a = Test;
//开启一个新的线程去执行a所用的方法
IAsyncResult ar = a.BeginInvoke(199, "hah", null, null);
Console.WriteLine("Main");
Console.ReadKey();
}
//无参数
//static void Test()
//{
// Console.WriteLine("test");
//}
//有参数
static int Test(int a,String str)
{
Console.WriteLine("test" + a + str);
Thread.Sleep(100);
return 0;
}
}
}