日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁(yè)編程開(kāi)發(fā)C#.NET → C#5.0全新的異步編程模型介紹

      C#5.0全新的異步編程模型介紹

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2012/9/11 19:00:11字體大小:A-A+

      作者:佚名點(diǎn)擊:62次評(píng)論:2次標(biāo)簽: 異步編程

      .NET Framework 2.0 x64sp2 官方完整版
      • 類(lèi)型:編程控件大。45.1M語(yǔ)言:中文 評(píng)分:1.0
      • 標(biāo)簽:
      立即下載

      1.異步方法的實(shí)現(xiàn)原理

      異步方法不需要多線程,因?yàn)橐粋(gè)異步方法并不是運(yùn)行在一個(gè)獨(dú)立的線程中的。

      異步方法運(yùn)行在當(dāng)前同步上下文中,只有激活的時(shí)候才占用當(dāng)前線程的時(shí)間。

      異步模型采用時(shí)間片輪轉(zhuǎn)來(lái)實(shí)現(xiàn)。

      2.使用異步編程模型的優(yōu)勢(shì):

      避免性能瓶頸,提升應(yīng)用程序的整體響應(yīng)性。

      3.關(guān)鍵字

         全新的異步編程模型使用“async”和“await”關(guān)鍵字來(lái)編寫(xiě)異步方法

      async:用來(lái)標(biāo)識(shí)一個(gè)方法,lambda表達(dá)式,或者一個(gè)匿名方法是異步的;

      await:用來(lái)標(biāo)識(shí)一個(gè)異步方法應(yīng)該在此處掛起執(zhí)行,直到等待的任務(wù)完成,于此同時(shí),控制權(quán)會(huì)移交給異步方法的調(diào)用方。

      4.異步方法的參數(shù)和返回值

      異步方法的參數(shù): 不能使用“ref”參數(shù)和“out”參數(shù),但是在異步方法內(nèi)部可以調(diào)用含有這些參數(shù)的方法

      異步方法的返回類(lèi)型:

        Task<TResult>:Tresult為異步方法的返回值類(lèi)型。

        Task:異步方法沒(méi)有返回值。

        void:主要用于事件處理程序(不能被等待,無(wú)法捕獲異常)。

      5.異步方法的命名規(guī)范

      *異步方法的方法名應(yīng)該以Async作為后綴

      *事件處理程序,基類(lèi)方法和接口方法,可以忽略此命名規(guī)范:

      *例如: startButton_Click不應(yīng)重命名為startButton_ClickAsync

      6.一個(gè)Demo

      1 <Window
      2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      4         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="AsyncSample.MainWindow"
      5         Title="Control Flow Trace" Height="350" Width="592">
      6     <Grid>
      7         <Button x:Name="startButton" Content="Start&#xa;" HorizontalAlignment="Left" Margin="250,10,0,0" VerticalAlignment="Top" Width="75" Height="24"  Click="startButton_Click" d:LayoutOverrides="GridBox"/>
      8         <TextBox x:Name="resultsTextBox" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Bottom" Width="576" Height="265" FontFamily="Lucida Console" FontSize="10" VerticalScrollBarVisibility="Visible" Grid.ColumnSpan="3"/>
      9     </Grid>
      10 </Window>

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Threading.Tasks;
      6 using System.Windows;
      7 using System.Windows.Controls;
      8 using System.Windows.Data;
      9 using System.Windows.Documents;
      10 using System.Windows.Input;
      11 using System.Windows.Media;
      12 using System.Windows.Media.Imaging;
      13 using System.Windows.Navigation;
      14 using System.Windows.Shapes;
      15 using System.Net.Http;
      16
      17 namespace AsyncSample
      18 {
      19     /// <summary>
      20     /// MainWindow.xaml 的交互邏輯
      21     /// </summary>
      22     public partial class MainWindow : Window
      23     {
      24         public MainWindow()
      25         {
      26             InitializeComponent();
      27            
      28         }
      29         private async void startButton_Click(object sender, RoutedEventArgs e)
      30         {
      31             // 1
      32             Task<string> getLengthTask = AccessTheWebAsync();
      33
      34             // 4
      35             string contentLength = await getLengthTask;
      36
      37             // 6
      38             resultsTextBox.Text +=
      39                 String.Format("\r\nLength of the downloaded string: {0}.\r\n", contentLength);
      40         }
      41
      42
      43         async Task<string> AccessTheWebAsync()
      44         {
      45             // 2
      46             HttpClient client = new HttpClient();
      47             Task<string> getStringTask =
      48                 client.GetStringAsync(http://www.cnblogs.com);
      49
      50             // 3               
      51             string urlContents = await getStringTask;
      52
      53             // 5
      54             return urlContents;
      55         }
      56     }
      57 }

      7.異步方法的執(zhí)行序列

      1:  進(jìn)入startButton_Click方法

                 調(diào)用 AccessTheWebAsync.

      2:   進(jìn)入 AccessTheWebAsync

                 調(diào)用HttpClient.GetStringAsync.

      3:  回到 AccessTheWebAsync

                 任務(wù)getStringTask開(kāi)始.

                 等待getStringTask & 返回一個(gè)Task<int>實(shí)例給startButton_Click.

      4:  回到startButton_Click

                 任務(wù)getLengthTask開(kāi)始

                 等待getLengthTask.

      5:  回到AccessTheWebAsync

                 任務(wù)getStringTask已經(jīng)完成.

                 執(zhí)行return語(yǔ)句.

                 退出AccessTheWebAsync.

      6:   回到startButton_Click

                 任務(wù)getLengthTask已經(jīng)完成.

                 AccessTheWebAsync 的結(jié)果被存儲(chǔ)到contentLength.

                 顯示contentLength 然后退出.

        .net framework
        (10).net framework
        .是一個(gè)框架,包括公共語(yǔ)言運(yùn)行時(shí)和.基本類(lèi)庫(kù),是用.語(yǔ)言編寫(xiě)的程序運(yùn)行的基本支撐。即要想在某臺(tái)計(jì)算機(jī)上運(yùn)行.編寫(xiě)的程序,必須事先要安裝.。你可以這么理解。就是一個(gè)中間件。這個(gè)中間件將.高級(jí)語(yǔ)言轉(zhuǎn)成機(jī)器語(yǔ)言。沒(méi)有.運(yùn)行環(huán)境就不能運(yùn)行不了.程序西西本頁(yè)提供.下載大全,,.版本怎么查看方法一第一步打開(kāi)我的電腦,在地址欄輸入.第二步從列出來(lái)的文件夾中,我們可以看到......而這些目錄顯示的最高版本號(hào)即本機(jī).版本號(hào),也就是.的...更多>>
        • Microsoft .NET FrameworkV4.0 Fin

          05-15 / 35.3M

          推薦理由:Microsoft .NET Framework 版可再發(fā)行組件包將安裝運(yùn)行針對(duì) .NET Framework 版開(kāi)發(fā)的應(yīng)用程序時(shí)所需的 .NET
        • Microsoft .NET Framework 2.0 SP2

          07-14 / 23.2M

          推薦理由:.NET Framework 2.0 Service Pack 2 是專(zhuān)為解決客戶(hù)在 .NET Framework 2.0 發(fā)布后報(bào)告的問(wèn)題而提供的累積更
        • .NET Framework3.5 官方完整版

          05-15 / 197.1M

          推薦理由: .NET Framework 3.0 中增加了不少新功能,例如 Windows Workflow Foundation (WF)、Windows Communic
        • .NET Framework2.0 安裝版

          05-15 / 23.9M

          推薦理由:Microsoft .NET Framework 2.0 版可再發(fā)行組件包將安裝運(yùn)行針對(duì) .NET Framework 2.0 版開(kāi)發(fā)的應(yīng)用程序時(shí)所需
        • Microsoft.NET Frameworks3.5 SP1

          05-15 / 2.9M

          推薦理由:前幾天隨著VS2008 SP1的發(fā)布,.NET Framework 3.5 SP1也來(lái)到了我們面前。 Microsoft .NET Framework 3.5
        • .NET Framework 2.0 x64sp2 官方完

          08-16 / 45.1M

          推薦理由:Microsoft .NET Framework 2.0 版 (x64)可再發(fā)行組件包將安裝 .NET Framework 運(yùn)行庫(kù),以及運(yùn)行面向 .NET F
        net framework
        (13)net framework
        西西軟件園提供.....版本下載,是系統(tǒng)中一個(gè)非常重要的環(huán)境工具,如果缺少了,我們電腦中的大部分軟件以及游戲都不能夠運(yùn)行,.版可再發(fā)行組件包將安裝運(yùn)行針對(duì).版開(kāi)發(fā)的應(yīng)用程序時(shí)所需的.運(yùn)行庫(kù)及相關(guān)文件。...更多>>
        • Microsoft .NET Framework 2.0 SP2

          07-14 / 23.2M

          推薦理由:.NET Framework 2.0 Service Pack 2 是專(zhuān)為解決客戶(hù)在 .NET Framework 2.0 發(fā)布后報(bào)告的問(wèn)題而提供的累積更
        • .NET Framework2.0 安裝版

          05-15 / 23.9M

          推薦理由:Microsoft .NET Framework 2.0 版可再發(fā)行組件包將安裝運(yùn)行針對(duì) .NET Framework 2.0 版開(kāi)發(fā)的應(yīng)用程序時(shí)所需
        • .NET Framework3.5 官方完整版

          05-15 / 197.1M

          推薦理由: .NET Framework 3.0 中增加了不少新功能,例如 Windows Workflow Foundation (WF)、Windows Communic
        • Microsoft .NET FrameworkV4.0 Fin

          05-15 / 35.3M

          推薦理由:Microsoft .NET Framework 版可再發(fā)行組件包將安裝運(yùn)行針對(duì) .NET Framework 版開(kāi)發(fā)的應(yīng)用程序時(shí)所需的 .NET
        • Microsoft .NET Framework1.1簡(jiǎn)體中

          03-07 / 21.4M

          推薦理由:.NET Framework 1.1 版可再發(fā)行組件包中包括您在運(yùn)行那些使用 .NET Framework 開(kāi)發(fā)的應(yīng)用程序時(shí)所需要的一切
        • Microsoft.NET Frameworks3.5 SP1

          05-15 / 2.9M

          推薦理由:前幾天隨著VS2008 SP1的發(fā)布,.NET Framework 3.5 SP1也來(lái)到了我們面前。 Microsoft .NET Framework 3.5

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過(guò)難過(guò)
        • 5 囧
        • 3 圍觀圍觀
        • 2 無(wú)聊無(wú)聊

        熱門(mén)評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(2)

        昵稱(chēng):
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)