C# async / await

1. await只能出现在async修饰的方法中

2.async不能修饰main函数

3.async修饰的方法,用普通方式调用时表现为异步执行,配合await时将变成同步执行

4. The return type of an async method must be void, Task or Task<T> 

 http://blogs.msdn.com/b/pfxteam/archive/2012/04/12/10293335.aspx

 

http://msdn.microsoft.com/zh-cn/library/hh191443.aspx

      [TestMethod]
        public void AsyncWait()
        {
            System.Diagnostics.Debug.WriteLine("main threadid:" + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());
            var t=a();
            //t.Wait();
            System.Diagnostics.Debug.WriteLine("main after a");
        }

        //private  int a()
        //{
        //    //System.Threading.Thread.Sleep(1000 *20 );
        //    for(int i=0;i<20;i++)
        //        System.Threading.Tasks.Task.Run(
        //            ()=>{
        //                System.Diagnostics.Debug.WriteLine("i:" + i.ToString() + " a threadid:" + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());
        //            }
        //    );
        //    return 0;
        //}

        private async System.Threading.Tasks.Task<int> a()
        {
            //can't await anonymous function
            //await delegate(){
            //    return 1;
            //};
            /*=>{
                System.Threading.Thread.Sleep(1000 * 20);
                return 0;
            };*/

            for (int i = 0; i < 20; i++)
            {
                //await System.Threading.Tasks.Task.Run(
                //      () =>
                //      {
                //          System.Diagnostics.Debug.WriteLine("i:" + i.ToString() + " a threadid:" + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());
                //      }
                //);

                await System.Threading.Tasks.Task.Factory.StartNew(
                    () => {
                        System.Diagnostics.Debug.WriteLine("i:" + i.ToString() + " a threadid:" + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());
                    }
                    );
            }
            return 0;
        }
原文地址:https://www.cnblogs.com/zyip/p/3534799.html