中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

C#~異步編程再續~async異步方法與同步方法的(de)并行(xing)

返回目錄

今天(tian)晚上沒事寫(xie)了個(ge)(ge)測試(shi)的(de)代碼,又看了看.net的(de)并行編(bian)程,兩個(ge)(ge)方法(fa)(fa)(fa)(fa),一(yi)個(ge)(ge)是異步async修飾的(de),另一(yi)個(ge)(ge)是普通的(de)方法(fa)(fa)(fa)(fa),在控(kong)制(zhi)臺程序(xu)的(de)Main方法(fa)(fa)(fa)(fa)里(li)去調用這兩個(ge)(ge)方法(fa)(fa)(fa)(fa),會有什么結(jie)果呢?

首(shou)先(xian)我們(men)看一下方(fang)法的組(zu)成,step1如下

 public async void Step1()
        {
            try
            {
                //await進行等(deng)待后,新線(xian)程的(de)(de)異常(chang)可(ke)以被(bei)主線(xian)程捕捉,這是(shi)正常(chang)的(de)(de),下面的(de)(de)代碼不會被(bei)執行
                await Task.Run(() =>
                {

                    Console.WriteLine("Step1 Current ThreadID" + Thread.CurrentThread.ManagedThreadId);
                    Thread.Sleep(3000);
                });

                await Task.Run(() =>
                {
                    Console.WriteLine("Step1 Current ThreadID" + Thread.CurrentThread.ManagedThreadId);
                    Console.WriteLine("ThreadTest.Test Runing");
                });
            }
            catch (Exception ex)
            {

                Console.WriteLine("ThreadTest" + ex.Message);
            }
        }

step2如下

 public void Step2()
        {
            Console.WriteLine("Step2 Current ThreadID" + Thread.CurrentThread.ManagedThreadId);
        }

我(wo)們可以看(kan)到step2很簡(jian)單,不(bu)會有(you)什么(me)延時,就是在屏幕上輸出(chu)一段話(hua),而step1就顯得復雜一些了(le),它是一個異步的(de)方法,并(bing)且使用Task.Run開啟了(le)兩(liang)個新線(xian)程,而第一

個線程的運行(xing)時間是(shi)3秒,很(hen)長(chang)呀,哈哈,第二個是(shi)在(zai)屏幕上輸出一段話!現在(zai)我們把step1和step2寫在(zai)一起(qi)會出現什么情(qing)況呢?

 var test = new ThreadTest();
 test.Step1();//整個方(fang)法(fa)不(bu)阻塞(sai),但方(fang)法(fa)內部(bu)有可能阻塞(sai)
 test.Step2();

通過上面的圖我們認識到了,step1按著順序先執行,而由于第一個線程要執行3秒,這時step2被并行執行,3秒后,step1的第二個(ge)線程(cheng)繼續執行(由于使用(yong)了(le)(le)await,所(suo)以(yi)step1內部進行了(le)(le)等(deng)待(dai),不會應響他(ta)外面的方法,也應響不了(le)(le),呵呵!

怎么了,看了上面的例如,是不是對并行編程有了新的認識呢!

返回目錄

posted @ 2015-09-16 22:58  張占嶺  閱讀(6105)  評論(3)    收藏  舉報