陷入IMobileServiceTable.ToListAsync()

时间:2017-08-01 09:50:56

标签: c# azure xamarin

我修改了Xamarin / Azure TODO示例。但代码卡在

  

IMobileServiceTable.ToListAsync()

这是我的IO类:

class DataIO
{
    BackgroundWorker DatabaseWorker = new BackgroundWorker();
    IMobileServiceTable<UserPosition> PositionTable;
    MobileServiceClient client;


    public DataIO()
    {
        Init();
    }

    public void Init()
    {
        client = new MobileServiceClient(Constants.ApplicationURL);
        PositionTable = client.GetTable<UserPosition>();
    }


    async void AddEntry(UserPosition entry)
    {
        await PositionTable.InsertAsync(entry);
    }

    public async Task<List<UserPosition>> GetEntries()
    {


        List<UserPosition> Entries = await PositionTable.ToListAsync();

        return Entries;
    }

    public async void DeleteEntry(UserPosition entry)
    {
        await PositionTable.DeleteAsync(entry);
    }

    public async void AddToDatabase(UserPosition item)
    {
        await PositionTable.InsertAsync(item);
    }
}

调试器不会跨越它也不会抛出错误。 如何处理?

在之前的电话会议中,没有任何问题。

编辑: 我已将GetEntries()方法重写为:

    public async Task<List<UserPosition>> GetEntries()
    {

        Task<List<UserPosition>> task = PositionTable.ToListAsync();


        List<UserPosition> entries = await task;

        return entries;
    }

根据这个example。但调试器只停留在行

Task<List<UserPosition>> task = PositionTable.ToListAsync();

1 个答案:

答案 0 :(得分:0)

AFAIK,IMobileServiceTable.ToListAsync()将按如下方式发送请求以检索结果:

Get https://<your-app-name>.azurewebsites.net/tables/UserPosition

enter image description here

我建议您在调用IMobileServiceTable.ToListAsync()时使用Fiddler来收集网络跟踪。此外,您可以通过浏览器从移动应用程序访问表端点,以确保您的移动应用程序可以按预期工作。另外,这是一个关于Handling Data in Mobile Clients的精彩教程,您可以参考它。