2015-04-05 34 views
0

我正在使用Azure移動服務創建Xamarin.Forms應用程序。目前,我做這樣的事情: -嘗試在調試器中不執行任何操作而退出塊

App.cs

public const string applicationURL = @"myUrl"; 
public const string applicationKey = @"myKey"; 
public static MobileServiceClient client = new MobileServiceClient(applicationURL, applicationKey); 

MainPage.cs

public MainViewModel ViewModel 
{ 
    get { return this.BindingContext as MainViewModel ; } 
    set { this.BindingContext = value; } 
} 

public MainPage() 
{ 
    InitializeComponent(); 

    this.ViewModel = new MainViewModel (App.client);} 

MainViewModel.cs

public MainViewModel(MobileServiceClient client) : this() 
{ 
    this.client = client; 
    LoadItemsCommand.Execute(null); 
} 

public ObservableCollection<MainModel> mainDetails{ get; set; } 


private Command loadItemsCommand; 
/// <summary> 
/// Command to load/refresh items 
/// </summary> 
public Command LoadItemsCommand 
{ 
    get { return loadItemsCommand ?? (loadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand())); } 
} 

private async Task ExecuteLoadItemsCommand() 
{ 
    if (IsLoading) 
     return; 

    IsLoading = true; 

    try 
    { 
     var details= await client.GetTable<MainModel>().ToListAsync(); 

     MainDetails.Clear(); 
     foreach (var mDetails in details) 
     { 
      MainDetails.Add(mDetails); 
     } 
    } 
    catch (Exception ex) 
    { 
     var page = new ContentPage(); 
     var result = page.DisplayAlert("Error", "Error loading data. Please check connectivity and try again.", "OK", null); 
    } 

       IsLoading = false; 
} 

當我的調試器到達的嘗試阻止在MainviewModel.cs中,它突然退出而沒有做任何事情。它甚至不會去Catch區塊。有什麼我做錯了嗎?我怎樣才能找出造成這個問題的原因?

+0

這是什麼類型的應用程序? WP8? – 2015-04-05 03:00:59

+0

@JohnSaunders這是一個Xamarin表單應用程序 – user3034944 2015-04-05 05:55:15

回答

2

當我的調試器到達MainviewModel.cs中的Try塊時,它突然退出而沒有做任何事情。

這是由於異步方法的性質,它們一旦命中第一個await就會使控制回到調用方法。這是一個預期的行爲。在等待之後,只需在線上設置一個斷點,一旦異步操作完成,就會看到它到達它。

相關問題