論道Windows Phone(六 ) 工作平行程式庫

來源:互聯網
上載者:User

頁面載入很卡

我的一個應用程式有一個用來管理原材料庫的頁面,如圖1所示,這是一個Pivot頁面,每個Pivot項列出一類原材料 。整個Pivot頁面綁到一個ManageIngredientsViewModel對象,每個Pivot項綁到一個IngredientGroupViewModel對象,這些 IngredientGroupViewModel對象是在運行時根據原材料庫的資料建立的。

圖 1

目前的做法是在 ManageIngredientsViewModel的建構函式裡通過LINQ to SQL載入資料,然後建立相應的IngredientGroupViewModel對象,如代碼1所示。這種 同步載入資料的做法很常見,也很直觀,不過,如果資料比較多,並且伴隨磁碟或者網路的訪問,就有可能導致頁面載入很卡。

代碼 1

我希望非同步載入資料,並且只在使用者查看某個Pivot項時才載入它的資料,這樣可以確保頁面保持響應,同時又能避免載入 多餘的資料。在這篇文章裡,我們將會以這個應用程式為背景探討如何通過工作平行程式庫(Task Parallel Library,TPL)實現這些效果。

啟動任務

首先,我不希望一開始就載入所有資料,因此把前面的代碼1換成下面的代碼2,新的代碼負責建立一組空的 IngredientGroupViewModel對象。由於Pivot控制項的ItemsSource屬性和ManageIngredientsViewModel對象的IngredientGroups屬性綁定, Pivot控制項會自動建立一組空的Pivot項。

代碼 2

相關文章

聯繫我們

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