async, await用法

  • 1254
  • 0

摘要:async, await用法

如果才能使用async及await

1)使用VS2012

2)使用VS2010 + SP1 + 把Visual Studio Async CTP下載下來,並安裝。

參數連結:

http://www.dotblogs.com.tw/simplecestlavie/archive/2012/06/26/73080.aspx

http://www.cnblogs.com/GrayZhang/archive/2011/09/07/csharp-vnext.html

Visual Studio Async CTP下載
msdn

範例程式碼如下。

根據讀完的了解,async比較類似標明這個function裡面有用到await,

所以Async_Button的Click的事件也需要加入async,不然會出現錯誤。

 

private async void Async_Button_Click(object sender, EventArgs e)
    {
      OutputTextBlock.Text += "開始" + Environment.NewLine;
      StringBuilder sb = new StringBuilder();
      string[] fileNames = System.IO.Directory.GetFiles("r:\\", "*.txt");
      foreach (var file in fileNames)
      {
        var str = await fnGetFileContentAsync(file);
        sb.Append(str);
        OutputTextBlock.Text += file + Environment.NewLine;
      }
      //ProcessWrite();
      OutputTextBlock.Text += "結束" + Environment.NewLine;
    }

    private async Task fnGetFileContentAsync(string fileName) 
    {
      using (var s = new System.IO.StreamReader(fileName))
      {
        return await s.ReadToEndAsync();
      }
    }

 

============ 以下是簽名檔 ============

一個小小螺絲釘。

第一次建立Blog,希望以後能慢慢充實它。

Howard