[英]Xamarin IMobileServiceTable Run Synchronously
使用IMobileServiceTable接口,如何同步调用方法的结果。 例如下面的GetTask方法:
public class ItemsManager {
IMobileServiceTable<Item> itemTable;
private ItemViewModel _itemViewModel = new ItemViewModel ();
public ItemsManager()
{
this.itemTable = App.client.GetTable<Item>();
App.SetItemsManager(this);
}
//This seems to just hang
public Item GetTask(string id, string barcode)
{
var qry = itemTable.Where(a => a.ItemID == id || a.BarCodeID == id);
return qry.Query.FirstOrDefault();
}
}
我试图通过扫描方法获得结果,并将项目记录提取到另一种形式:
async void OnProductScanClicked (object sender, EventArgs e)
{
var result = await BarCodes.Instance.Read ();
if (!result.Success) {
await this.DisplayAlert ("Scan Failed", "Failed to get barcode", "OK");
} else {
var msg = String.Format ("Barcode : {0} - {1}", result.Format, result.Code);
App.SetItemsManager(new ItemsManager());
var item = App.ItemManager.GetTask(result.Code, result.Format.ToString());
if (item == null) {
await this.DisplayAlert ("Item Not Found!", msg, "OK");
}
else {
var myPage = new ItemsXaml();
myPage.BindingContext = item;
await Navigation.PushModalAsync (myPage);
}
}
}
我对这些东西还很陌生,现在已经想办法了。 调用任何异步函数时,我们只需要添加await方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.