C# 尝试在不在调试器中执行任何操作的情况下退出块

C# 尝试在不在调试器中执行任何操作的情况下退出块,c#,exception-handling,try-catch,xamarin.forms,C#,Exception Handling,Try Catch,Xamarin.forms,我正在使用Azure移动服务创建一个Xamarin.Forms应用程序。目前,我正在做这样的事情:- App.cs public const string applicationURL = @"myUrl"; public const string applicationKey = @"myKey"; public static MobileServiceClient client = new MobileServiceClient(applicationURL, applicationKey)

我正在使用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;
}
publicMainViewModel(MobileServiceClient客户端):this()
{
this.client=client;
LoadItemsCommand.Execute(空);
}
公共ObservableCollection mainDetails{get;set;}
私有命令loadItemsCommand;
/// 
///用于加载/刷新项目的命令
/// 
公共命令LoadItemsCommand
{
获取{return loadItemsCommand???(loadItemsCommand=new命令(async()=>await ExecuteLoadItemsCommand());}
}
专用异步任务ExecuteLoadItemsCommand()
{
如果(孤岛加载)
返回;
IsLoading=true;
尝试
{
var details=wait client.GetTable().ToListAsync();
MainDetails.Clear();
foreach(var详细信息)
{
MainDetails.Add(详细信息);
}
}
捕获(例外情况除外)
{
var page=new ContentPage();
var result=page.DisplayAlert(“错误”,“加载数据时出错。请检查连接并重试。”,“确定”,null);
}
IsLoading=false;
}
当我的调试器到达MainviewModel.cs中的Try块时,它突然退出而不做任何事情。它甚至不去抓块。我做错什么了吗?如何找出问题的原因

当我的调试器到达MainviewModel.cs中的Try块时,它突然退出而不做任何事情


这是因为异步方法的性质,一旦命中第一个
wait
,它们就会将控制权交还给调用方法。这是预期的行为。只需在等待后的行上设置一个断点,异步操作完成后,您就会看到它到达断点。

这是什么类型的应用程序?WP8?@johnsaunds这是一个Xamarin表单应用程序