我想讓數據不會在ui線程中加載,而是在後臺線程中加載。 我嘗試了幾個谷歌的例子,但它仍然無法正常工作。多線程windows phone應用程序
ThreadPool.QueueUserWorkItem((o) =>
{
IList<Asana> asanasRepo = null;
var asanasRepository = this.GetService<IAsanasRepository>();
asanasRepo = asanasRepository.GetAllAsanas();
Asanas = asanasRepo.Select(x => new AsanasListItemViewModel
{
AsanaId = x.AsanaId,
AsanaLevel = InfrastructureHelper.GetLevel(x.AsanaLevel),
CoverImagePath = string.Format("/Content/Images/{0}", x.CoverImageFileName),
UsualAsanaTitle = x.UsualTitle,
YogaAsanaTitle = x.YogaTitle
}).ToObservableCollection();
asanasDispatcher.BeginInvoke(() =>
{
AsanasItems.Clear();
AsanasItems = (from asana in Asanas
group asana by asana.AsanaLevel into c
orderby c.Key
select new Group<AsanasListItemViewModel>(c.Key, c)
).ToObservableCollection();
});
});
的主要思路是從數據庫不是在UI線程LO負載數據,但在後臺,當數據將被載入它呈現到用戶界面。 我試過類似上面的代碼,但它不工作。 你能幫我嗎? 謝謝!
什麼是失敗?它給你什麼錯誤?什麼線? –
沒有錯誤,只是未在UI上呈現的項目列表。 – Alex
你確定你的綁定能用一個更簡單的例子嗎?另外,嘗試並在UI線程上運行代碼(即ThreadPool中沒有)? –