class Program { static void Main(string[] args) { //Task t1 = new Task(MyMethodA); //Task t2 = new Task(MyMethodB); ////带返回值 //Task<string> t3 = new Task<string>(MyMethodC); ////带参数和返回值 //Task<string> t4 = new Task<string>(() => MyMethodD("jcstone")); //t3.Start(); //t4.Start(); //t1.Start(); //t2.Start(); //t1.Wait(); //t2.Wait(); //t3.Wait(); //t4.Wait(); Task t1 = Task.Factory.StartNew(delegate { MyMethodA(); }); Task t2 = Task.Factory.StartNew(delegate { MyMethodB(); }); Task<string> t3 = Task<string>.Factory.StartNew(() => MyMethodC()); Task<string> t4 = Task<string>.Factory.StartNew(() => MyMethodD("jcstone")); Task.WaitAll(t4, t3, t2, t1); Console.WriteLine(t3.Result); Console.WriteLine(t4.Result); Console.WriteLine("主线程运行结束!"); Console.ReadKey(true);//任意键结束 } static void MyMethodA() { for (int i = 100; i < 1000; i += 100) { Console.WriteLine("A " + i.ToString()); Thread.Sleep(710); } } static void MyMethodB() { for (int i = 1; i < 15; i++) { Console.WriteLine("B " + i.ToString()); Thread.Sleep(550); } } static string MyMethodC() { Thread.Sleep(750); return "C This is MyMethodC"; } static string MyMethodD(string name) { Thread.Sleep(1750); return "D Hello," + name + "!"; } }
|
|