這篇文章將為大家詳細講解有關(guān)怎么進行Windows 8應用開發(fā)中的異步調(diào)用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了紫金免費建站歡迎大家使用!
不論是桌面客戶端還是Web應用通常會出現(xiàn)處理時間較長的操作,為了在這段時間內(nèi)不影響用戶與應用之間的交互體驗,開發(fā)人員通常會使用異步調(diào)用技術(shù),使得比較復雜的邏輯操作由異步進行,用戶仍然可以繼續(xù)使用應用,不會有無響應的等待情況出現(xiàn)。
通過一個簡單的實例演示如何在Windows 8 應用中使用異步編程。首先我們來編寫一個“Get Blogs”按鈕,點擊它可以從Windows Blog中獲取博客列表。當然獲取博客信息的過程是由異步進行的,這個過程中為了測試用戶仍然可以與應用交互,我們再設計一個“Change Text”用來修改waitingText的內(nèi)容。
代碼
<StackPanel Orientation="Horizontal" Grid.Row="1"> <StackPanel> <TextBlock x:Name="listTitle" Height="40" Width="200" Style="{StaticResource BasicTextStyle}"/> <ListView x:Name="blogList" ItemTemplate="{StaticResource listTemplate}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="550" Margin="50,10,0,0" Width="650"/> </StackPanel> <StackPanel Orientation="Vertical" VerticalAlignment="Top"> <TextBlock x:Name="waitingText" Height="40" Width="200" Style="{StaticResource BasicTextStyle}" /> <Button x:Name="getBlogs" Content="Get Blogs" Width="150" Click="getBlogs_Click" /> <Button x:Name="changeText" Content="Change Text" Margin="0,10,0,0" Width="150" Click="changeText_Click" /> </StackPanel> </StackPanel>接下來為“Get Blogs”按鈕添加Click事件,getBlogs_Click與以往Click事件不同之處就在于多了一個async關(guān)鍵字,看到Async就說明下面的內(nèi)容要通過異步方法來實現(xiàn)。方法中通過SyndicationClient.RetrieveFeedAsync獲取博客內(nèi)容,并通過await操作符告知應用要調(diào)用異步操作,且不影響用戶正常交互。如果不使用的異步調(diào)用的話,用戶只能等待所有博客內(nèi)容加載完成后,才能繼續(xù)使用該應用。
private async void getBlogs_Click(object sender, RoutedEventArgs e) { waitingText.Text = "Loading Blogs..."; SyndicationClient client = new SyndicationClient(); client.BypassCacheOnRetrieve = true; Uri feedUri = new Uri("http://blogs.windows.com/windows/b/bloggingwindows/atom.aspx"); try { SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri); ObservableCollection<BlogItem> blogData = new ObservableCollection<BlogItem>(); listTitle.Text = feed.Title.Text; foreach (SyndicationItem item in feed.Items) { blogData.Add(new BlogItem() { Author = item.Authors[0].Name.ToString(), PubDate = item.PublishedDate.Year.ToString() + "/" + item.PublishedDate.Month.ToString() + "/" + item.PublishedDate.Day.ToString(), Title = item.Title.Text }); } blogList.ItemsSource = blogData; waitingText.Text = "Completed!"; } catch (Exception ex) { waitingText.Text = "Can't load the page:" + ex.ToString(); } }演示
運行程序點擊“Get Blogs”按鈕,現(xiàn)在應用已經(jīng)通過異步方式獲取Blog內(nèi)容,這是我們可以點擊“Change Text”來驗證一下用戶是否可以繼續(xù)使用應該的其他功能。
點擊“Get Blogs”后會出現(xiàn)“Loading Blogs…”的字樣,說明此事異步調(diào)用已經(jīng)啟動。

在獲取到博客內(nèi)容前點擊“Change Text”,剛才的文字會變?yōu)椤癙lease Waiting…”,說明當異步調(diào)用時用戶仍然可以與應用進行交互。

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

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

關(guān)于怎么進行Windows 8應用開發(fā)中的異步調(diào)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享文章:怎么進行Windows8應用開發(fā)中的異步調(diào)用
本文網(wǎng)址:http://www.yijiale78.com/article40/ihdoeo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、外貿(mào)建站、用戶體驗、微信公眾號、動態(tài)網(wǎng)站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)