c# – Azure移动服务客户端查询不将控制权返回给Xamarin表单Android客户端应用程序

c# – Azure移动服务客户端查询不将控制权返回给Xamarin表单Android客户端应用程序,第1张

概述我正在使用带有Xamarin Form Android应用程序的Azure Mobile Service来主要查询来自azure表存储的数据. 我面临的当前问题是azure移动服务客户端没有在移动服务客户端之后立即返回控制 API调用(仅适用于Portable类库和android app项目,但同一调用会返回正常.net中的结果 库,因为我已经使用测试项目来验证API). 我使用的源代码如下: A 我正在使用带有Xamarin Form Android应用程序的Azure Mobile Service来主要查询来自azure表存储的数据.

我面临的当前问题是azure移动服务客户端没有在移动服务客户端之后立即返回控制
API调用(仅适用于Portable类库和androID app项目,但同一调用会返回正常.net中的结果
库,因为我已经使用测试项目来验证API).

我使用的源代码如下:

Azure移动服务代码:

public class VerticalFarmController : tableController<VerticalFarm>    {        protected overrIDe voID Initialize(httpControllerContext controllerContext)        {           base.Initialize(controllerContext);            MobileServiceContext context = new MobileServiceContext();            string connectionString = "My_StorageConnectionString";            DomainManager = new StorageDomainManager<VerticalFarm>(connectionString,"VerticalFarm",Request,Services);        }        public Task<IEnumerable<VerticalFarm>> GetAllVerticalFarm(ODataqueryOptions queryOptions)        {            return base.queryAsync(queryOptions);        }}

Xamarin Form AndroID应用程序代码:

public class MainActivity : global::Xamarin.Forms.Platform.AndroID.FormsApplicationActivity    {        private const string APIUrl = "[Mobile service Url]";        private const string AppKey = "[Application key]";        protected overrIDe voID OnCreate(Bundle bundle)        {            base.OnCreate(bundle);            global::Xamarin.Forms.Forms.Init(this,bundle);            IMobileServiceClIEnt mobileServiceClIEnt = new MobileServiceClIEnt(APIUrl,AppKey);            try            {                var table = mobileServiceClIEnt.Gettable("verticalfarm");                var result = table.ReadAsync("$top=10",null,wrapResult: true).Result;            }            catch (Exception ex)            {                System.Diagnostics.DeBUG.Writeline(ex.ToString());            }            LoadApplication(new App());        }    }

在执行以下代码行之后,它既不返回结果也不返回异常:

var result = table.ReadAsync("$top=10",wrapResult: true).Result;

如果有人有类似的问题并且能够解决它,那将是很好的.

解决方法 调用.Result如下所示会导致死锁

var result = table.ReadAsync("$top=10",wrapResult: true).Result;

我在MobileServicesClIEnt.InvokeAPIAsync()调用时遇到了同样的问题

相反,你应该等待: –

async Task Readtable(){        var result = await table.ReadAsync("$top=10",wrapResult: true);         // do something with result}

或者在我的情况下

async Task CallAPI(){    var response = await App.clIEnt.InvokeAPIAsync ("/API/call",System.Net.http.httpMethod.Get,null);    // do something with response}
总结

以上是内存溢出为你收集整理的c# – Azure移动服务客户端查询不将控制权返回给Xamarin表单Android客户端应用程序全部内容,希望文章能够帮你解决c# – Azure移动服务客户端查询不将控制权返回给Xamarin表单Android客户端应用程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1231506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存