成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows 8應用開發之異步調用

開發 后端
本篇將通過一個簡單的實例演示如何在Windows 8 應用中使用異步編程。希望對大家有所幫助。

 不論是桌面客戶端還是Web應用通常會出現處理時間較長的操作,為了在這段時間內不影響用戶與應用之間的交互體驗,開發人員通常會使用異步調用技術,使得比較復雜的邏輯操作由異步進行,用戶仍然可以繼續使用應用,不會有無響應的等待情況出現。

本篇將通過一個簡單的實例演示如何在Windows 8 應用中使用異步編程。首先我們來編寫一個“Get Blogs”按鈕,點擊它可以從Windows Blog中獲取博客列表。當然獲取博客信息的過程是由異步進行的,這個過程中為了測試用戶仍然可以與應用交互,我們再設計一個“Change Text”用來修改waitingText的內容。

代碼

  1. <StackPanel Orientation="Horizontal" Grid.Row="1"> 
  2.     <StackPanel> 
  3.         <TextBlock x:Name="listTitle" Height="40" Width="200"  
  4.                    Style="{StaticResource BasicTextStyle}"/> 
  5.         <ListView x:Name="blogList" ItemTemplate="{StaticResource listTemplate}" 
  6.                   VerticalAlignment="Top" HorizontalAlignment="Left" Height="550" 
  7.                   Margin="50,10,0,0" Width="650"/> 
  8.     </StackPanel> 
  9.     <StackPanel Orientation="Vertical" VerticalAlignment="Top"> 
  10.         <TextBlock x:Name="waitingText" Height="40" Width="200"  
  11.                    Style="{StaticResource BasicTextStyle}" /> 
  12.         <Button x:Name="getBlogs" Content="Get Blogs" Width="150" 
  13.                 Click="getBlogs_Click"  /> 
  14.         <Button x:Name="changeText" Content="Change Text" Margin="0,10,0,0"  
  15.                 Width="150" Click="changeText_Click" /> 
  16.     </StackPanel> 
  17. </StackPanel> 

接下來為“Get Blogs”按鈕添加Click事件,getBlogs_Click與以往Click事件不同之處就在于多了一個async關鍵字,看到Async就說明下面的內容要通過異步方法來實現。方法中通過SyndicationClient.RetrieveFeedAsync獲取博客內容,并通過await操作符告知應用要調用異步操作,且不影響用戶正常交互。如果不使用的異步調用的話,用戶只能等待所有博客內容加載完成后,才能繼續使用該應用。

  1. private async void getBlogs_Click(object sender, RoutedEventArgs e) {      
  2. waitingText.Text = "Loading Blogs...";      
  3.  SyndicationClient client = new SyndicationClient();     
  4.  client.BypassCacheOnRetrieve = true;      
  5.  Uri feedUri = new Uri("http://blogs.windows.com/windows/b/bloggingwindows/atom.aspx");      
  6.  try     
  7.  {        
  8.   SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri);      
  9.     ObservableCollection<BlogItem> blogData = new ObservableCollection<BlogItem>();                   
  10. listTitle.Text = feed.Title.Text;                 
  11.   foreach (SyndicationItem item in feed.Items)      
  12.     {             blogData.Add(new BlogItem()        
  13.       {                 Author = item.Authors[0].Name.ToString(),          
  14.         PubDate = item.PublishedDate.Year.ToString() + "/" +                  
  15.          item.PublishedDate.Month.ToString() + "/" +                        
  16.    item.PublishedDate.Day.ToString(),           
  17.        Title = item.Title.Text       
  18.        });         }      
  19.     blogList.ItemsSource = blogData;                 
  20.  waitingText.Text = "Completed!";  
  21.     }    
  22.   catch (Exception ex)  
  23.     {      
  24.     waitingText.Text = "Can't load the page:" + ex.ToString();     } } 

演示

運行程序點擊“Get Blogs”按鈕,現在應用已經通過異步方式獲取Blog內容,這是我們可以點擊“Change Text”來驗證一下用戶是否可以繼續使用應該的其他功能。

點擊“Get Blogs”后會出現“Loading Blogs…”的字樣,說明此事異步調用已經啟動。

[[101311]]

在獲取到博客內容前點擊“Change Text”,剛才的文字會變為“Please Waiting…”,說明當異步調用時用戶仍然可以與應用進行交互。

[[101312]]

異步調用完成后,文字部分又被更新為“Completed!”。

image

至此,關于異步調用的開發就完成了。本篇內容只是異步調用的一種類型,當然還有許多其他類型的API可以供大家使用,而且包含C#、VB、JS多種語言開發。

image

原文鏈接:http://www.cnblogs.com/gnielee/archive/2012/10/28/windows9-app-develop-async-programming.html

 

責任編輯:彭凡 來源: 博客園
相關推薦

2010-02-22 13:28:05

WCF異步調用

2009-08-21 11:02:55

C#異步調用

2009-10-20 16:48:30

C#委托

2009-11-09 10:50:30

WCF異步調用

2009-12-21 14:10:26

WCF異步調用

2009-11-06 15:54:15

WCF異步調用

2009-07-01 13:58:00

JavaScript異

2022-11-03 15:37:52

NAPI開發三方庫移植

2009-12-07 14:35:42

WCF異步調用

2010-01-11 17:24:19

VB.NET異步調用

2011-03-02 08:57:22

jQueryJavaScript

2009-12-07 14:26:47

WCF異步調用

2021-03-29 09:26:44

SpringBoot異步調用@Async

2009-08-21 11:24:16

C#異步調用

2009-07-01 14:05:23

JavaScript異

2009-07-01 14:37:14

JavaScript異

2009-07-01 14:23:46

JavaScript異

2009-07-01 14:31:01

JavaScript異

2024-07-31 15:57:41

2024-10-15 10:28:43

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品黄 | 日韩毛片| 国产精品综合视频 | 天天综合久久网 | 国产欧美日韩综合精品一 | 国产色 | 波多野结衣一区二区 | 久久99蜜桃综合影院免费观看 | 黄色片av| 欧美成年黄网站色视频 | 作爱视频免费观看 | 亚洲精品久久久久久久不卡四虎 | 日本一二区视频 | 午夜欧美 | 伊人网影院 | 久久久男人的天堂 | 国产在线一区二区三区 | 二区三区视频 | 黄网站在线播放 | 久久综合久久久 | 亚洲一区二区在线视频 | 91视频www.| 国产一区二区三区四区五区加勒比 | 久久久精 | 亚洲美女视频 | 国产精品久久久久久久久久99 | 国产精品久久久久久久久大全 | 国产精品久久精品 | 天天操精品视频 | 中文字幕在线视频精品 | 婷婷丁香综合网 | 精品久久久久久亚洲精品 | 好好的日在线视频 | 欧美精品久久久久 | 国产精品日产欧美久久久久 | 精品二区| 欧美日韩国产精品一区二区 | 亚洲一区视频在线播放 | 欧美日韩不卡 | 亚洲欧美一区二区三区1000 | 日韩欧美在 |