async和await异步操作

来源:互联网 发布:js原型继承原理 编辑:程序博客网 时间:2024/04/29 22:55
class Program    {        static void Main(string[] args)        {            // 同步方式            Console.WriteLine("异步方式测试开始!");            AstbcMethod(35);            Console.WriteLine("异步方式结束!");            Console.ReadKey();        }        private static async void AstbcMethod(int input)        {            Console.WriteLine("进入异步操作!");            var result = await AsyncWork(input);            Console.WriteLine("最终结果{0}", result);            Console.WriteLine("退出异步操作!");        }        private static async Task<int> AsyncWork(int val)        {            for (int i = val; i < 40; i++)            {                Console.WriteLine("耗时操作{0}", i);                var result = await Task.Factory.StartNew((Func<object, int>)Fn, i);                Console.WriteLine("耗时操作j结果{0}", result);                val++;              }            return val;        }        //斐波那契数列        private static int Fn(object n)        {            var i = (int) n;            if (i <= 0)            {                throw new ArgumentOutOfRangeException();            }            if (i == 1 || i == 2)            {                return 1;            }            return checked(Fn(i - 1) + Fn(i - 2)); // when n>46 memory will  overflow        }    }
0 0
原创粉丝点击