ОК, мои приложения работают, я просто НЕНАВИЖУ производительность, которую я вижу при переключении элементов сводки.Я случайно получаю заикания и зависания.Я действительно отстой в многопоточности, так как пришел из веб-разработки.Есть ли что-то, что я мог бы сделать по-другому, чтобы ускорить свои приложения?
Вот главная страница, переходящая от моего "Твиста!"приложение.Наибольшие изменения происходят при переключении между пунктами «Список наблюдения» и «Мои списки».
private void panTwist_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
switch (panTwist.SelectedIndex)
{
case 0: //Watch List
App.vmTweet.LoadMore = false;
DataContext = App.vmTweet;
if (!App.vmTweet.IsWatchListTweetsLoaded)
{
LoadWatchList(false);
}
break;
case 1: //menu
ApplicationBar = null;
SetMenuDisplay();
break;
case 2: //My Lists
ApplicationBar = null;
DataContext = App.vmTwitterList;
if (!App.vmTwitterList.IsMyListsLoaded)
{
GetMyLists();
}
MyListsSetDisplay();
break;
default:
break;
}
}
Вот код из моего приложения «Wiki-Reef».Этот работает еще хуже ....
private void panCorals_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (panCorals.SelectedIndex)
{
case 0: //search corals
break;
case 1: //top corals
if (!App.vmCoral.IsTopDataLoaded)
{
App.vmCoral.IsTopLoading = true;
if (App.HasConnectivity)
{
//get corals from web
App.vmCoral.GetTopCorals();
}
else
{
//get saved corals from device
MessageBox.Show("Your phone does not have a connection to the internet, so the results you see could be empty or outdated.");
App.vmCoral.GetSavedTopCorals();
}
}
break;
case 2: //new corals
if (!App.vmCoral.IsNewDataLoaded)
{
App.vmCoral.IsNewLoading = true;
if (App.HasConnectivity)
{
//get corals from web
App.vmCoral.GetNewCorals();
}
else
{
//get saved corals from device
MessageBox.Show("Your phone does not have a connection to the internet, so the results you see could be empty or outdated.");
App.vmCoral.GetSavedNewCorals();
}
}
break;
default:
break;
}
}