asyns和await實現傳統的非同步---------C#

來源:互聯網
上載者:User

標籤:

傳統的非同步是利用回呼函數來寫的,寫過的人都知道,,那樣寫的結構東一塊西一塊的,很不好找。

所以在這裡整理啦一下asyns和await實現的非同步。。。

asyns和await的非同步不是很好理解。在這裡,我在注釋中,將細細的標明

 class Program    {        // ---------------規範說明-----------------------------        //1.用async標識的方法即為非同步方法呼叫,非同步方法呼叫的傳回值只能是void或者Task<object>,---傳回值是void的方法,不能使用await調用。注意你的傳回型別        //2.在其他方法中調用非同步方法呼叫時,可以加await,表示等待這個非同步方法呼叫結束。 非同步關鍵點就在這個await        //3.await標籤只能寫在非同步方法呼叫中        //4.await標識並調用的方法中,也必須要有await才行        static void Main(string[] args)        {            //第一步,寫了一個  “1”            Console.WriteLine("1");                        Paint();            //第三步----2,寫了一個  “5”            Console.WriteLine("5");            Console.ReadLine();        }        //此方法是已經標明是非同步方法呼叫        async static void Paint()        {            //第二步,寫了一個“2”            Console.WriteLine("2");            //第三步--1,代碼發現await欄位,整個方法將直接返回, 並在這個await這裡加個標籤,所以第三步輸出的是“5”            //等到 RequestBody方法傳回值時,再次進入Paint方法中,並且直接從這個await欄位處運行,            //-----------------------------等待一秒---------這時候,已經輸出了“5”            //一秒後RequestBody方法傳回值了,RequestBody的傳回型別應該是Task<string>,            //但是,用了await之後,傳回值直接就是string            //並且,輸出“4”的操作被await阻塞            Console.WriteLine(await RequestBody());            Console.WriteLine("4");           }        async static Task<string> RequestBody()        {                //被await調用的方法中,必須要有await            return await Task.Run(() =>            {                Thread.Sleep(2000);                return "3";            });        }     }

 

asyns和await實現傳統的非同步---------C#

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.