上午再调C#并行编程的东西,程序代码都没有什么问题,可是想要的结果就是没有打印的控制台界面上;究其原因是忽略了console.read的作用.
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
//第一种方式开启
var task1 = new Task(() =>
{
Run1();
});
//第二种方式开启
var task2 = Task.Factory.StartNew(() =>
{
Run2();
});
Console.WriteLine("调用start之前****************************\n");
//调用start之前的“任务状态”
Console.WriteLine("task1的状态:{0}", task1.Status);
Console.WriteLine("task2的状态:{0}", task2.Status);
task1.Start();
Console.WriteLine("\n调用start之后****************************");
//调用start之前的“任务状态”
Console.WriteLine("\ntask1的状态:{0}", task1.Status);
Console.WriteLine("task2的状态:{0}", task2.Status);
//主线程等待任务执行完
Task.WaitAll(task1, task2);
Console.WriteLine("\n任务执行完后的状态****************************");
//调用start之前的“任务状态”
Console.WriteLine("\ntask1的状态:{0}", task1.Status);
Console.WriteLine("task2的状态:{0}", task2.Status);
Console.Read(); //要注意
}
static void Run1()
{
Thread.Sleep(1000);
Console.WriteLine("\n我是任务1");
}
static void Run2()
{
Thread.Sleep(2000);
Console.WriteLine("我是任务2");
}
}
===========================================================================================
Console.Read 读字符 Console.ReadLine 读取一行字符