Windows Phone開發經驗談(16)-使用Async CTP簡化非同步編程

來源:互聯網
上載者:User

    Windows 8 中已經可以使用C#5.0的“非同步”特性,簡單優美的代碼,大大降低非同步編程的複雜性,在Windows Phone7 中也可以利用Async CTP來實現,具體方法如下.

首先下載Async CTP http://www.microsoft.com/en-us/download/details.aspx?id=9983

安裝的必要條件是Vs2010 Sp1 沒安裝Sp1的朋友請下載:http://download.microsoft.com/download/E/B/A/EBA0A152-F426-47E6-9E3F-EFB686E3CA20/VS2010SP1dvd1.iso

Async CTP下載完後不要急於安裝..因為該安裝程式和眾多VS補丁有衝突,即使安裝了也無法使用,所以我們必須先排除這些地雷。

---------------------------------------------------------------------------------------------------------------

如果是Windows 8 系統必須在沒有安裝Silverlight 5之前安裝Async CTP 否則無法使用 如果安裝了 Silverlight 5請先卸載,如果安裝了VS2012 建議也先卸載。

刪除以下補丁可以到控制台尋找:KB2635973, KB2615527, KB2645410

(具體可以參考:http://blogs.msdn.com/b/lucian/archive/2012/03/25/asyncctp-installation-problems-and-vs11.aspx)

安裝完成之後在我的文件裡面就會出現Microsoft Visual Studio Async CTP 這個檔案夾 找到AsyncCtpLibrary_Phone.dll 這個檔案

這時候就可以建立一個Windows Phone程式 引用AsyncCtpLibrary_Phone.dll 這個DLL

using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using Microsoft.Phone.Controls;using System.Threading.Tasks;namespace CRSAsyncCTP{    public partial class MainPage : PhoneApplicationPage    {        // 建構函式        public MainPage()        {            InitializeComponent();        }        private int fun(object num)        {            int i = (int)num;            if (i == 0 || i == 1) return 1;            return i * fun(i - 1);        }        private async Task<int> FFun(int num)        {            return await Task<int>.Factory.StartNew(new Func<object, int>(fun), num);        }        private async void button1_Click(object sender, RoutedEventArgs e)        {            string str = textBox1.Text;            int number = int.Parse(str);            var result = await FFun(number);            base.Dispatcher.BeginInvoke(() =>            {                MessageBox.Show(result.ToString());            });        }    }}

 

我做了個DEMO:CRSAsyncCTP.rar

好了,就介紹到這裡趕快來體驗一下吧。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.