class Program { static void Main(string[] args) { //关于终止task或者线程池的方法,用的都是CancellationTokenSource对象, //其实就是一个静态变量。线程的方法循环访问这个静态变量,判断是不是要结束方法 //没什么特别的,还不如自己写个静态字段 //task是后台线程 Task<Int32> t = Task.Run(()=>Count(20)); t.Wait();//同步等待 Task cwt = t.ContinueWith(task=>Console.WriteLine("结果是:"+task.Result));//异步等待,而且task.Result就是函数的返回值 Console.WriteLine("开始啦"); Console.ReadKey(); } public static int Count(int countTo) { for(Int32 count=0;count<countTo;count++) { Console.WriteLine(count); Thread.Sleep(200); } return 1; } }
有一次我发现Task<object>无法执行带有参数的Func<,,>,于是,发现了以下方法,效果相当于线程执行