這篇文章將為大家詳細(xì)講解有關(guān)怎么進(jìn)行Windows 8應(yīng)用開發(fā)中的異步調(diào)用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了紫金免費(fèi)建站歡迎大家使用!
不論是桌面客戶端還是Web應(yīng)用通常會出現(xiàn)處理時間較長的操作,為了在這段時間內(nèi)不影響用戶與應(yīng)用之間的交互體驗(yàn),開發(fā)人員通常會使用異步調(diào)用技術(shù),使得比較復(fù)雜的邏輯操作由異步進(jìn)行,用戶仍然可以繼續(xù)使用應(yīng)用,不會有無響應(yīng)的等待情況出現(xiàn)。
通過一個簡單的實(shí)例演示如何在Windows 8 應(yīng)用中使用異步編程。首先我們來編寫一個“Get Blogs”按鈕,點(diǎn)擊它可以從Windows Blog中獲取博客列表。當(dāng)然獲取博客信息的過程是由異步進(jìn)行的,這個過程中為了測試用戶仍然可以與應(yīng)用交互,我們再設(shè)計(jì)一個“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)容要通過異步方法來實(shí)現(xiàn)。方法中通過SyndicationClient.RetrieveFeedAsync獲取博客內(nèi)容,并通過await操作符告知應(yīng)用要調(diào)用異步操作,且不影響用戶正常交互。如果不使用的異步調(diào)用的話,用戶只能等待所有博客內(nèi)容加載完成后,才能繼續(xù)使用該應(yīng)用。
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(); } }
演示
運(yùn)行程序點(diǎn)擊“Get Blogs”按鈕,現(xiàn)在應(yīng)用已經(jīng)通過異步方式獲取Blog內(nèi)容,這是我們可以點(diǎn)擊“Change Text”來驗(yàn)證一下用戶是否可以繼續(xù)使用應(yīng)該的其他功能。
點(diǎn)擊“Get Blogs”后會出現(xiàn)“Loading Blogs…”的字樣,說明此事異步調(diào)用已經(jīng)啟動。
在獲取到博客內(nèi)容前點(diǎn)擊“Change Text”,剛才的文字會變?yōu)椤癙lease Waiting…”,說明當(dāng)異步調(diào)用時用戶仍然可以與應(yīng)用進(jìn)行交互。
異步調(diào)用完成后,文字部分又被更新為“Completed!”。
至此,關(guān)于異步調(diào)用的開發(fā)就完成了。本篇內(nèi)容只是異步調(diào)用的一種類型,當(dāng)然還有許多其他類型的API可以供大家使用,而且包含C#、VB、JS多種語言開發(fā)。
關(guān)于怎么進(jìn)行Windows 8應(yīng)用開發(fā)中的異步調(diào)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享文章:怎么進(jìn)行Windows8應(yīng)用開發(fā)中的異步調(diào)用
本文網(wǎng)址:http://chinadenli.net/article40/ihdoeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、外貿(mào)建站、用戶體驗(yàn)、微信公眾號、動態(tài)網(wǎng)站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)