我最近开始使用Xamarin,现在我对noob的使用水平非常高,我将继续解决我的问题。
我正在开发一个可以访问Web服务以从DB发送和导入数据的应用程序,现在我当前正在登录页面上,并且我有一种方法可以检查用户是否退出数据库,何时我在Xamarin中添加了服务参考,所有方法都变成了异步,因此我需要使用任务。
因此,我实现了Tasks,并且运行良好,但是遇到一个问题,我无法将服务器的响应发送回去,我进行了一些研究,发现Tasks方法没有返回值,为此,我可以使用Task < TResult>,我以这种方式实现:
服务中的CheckUser方法
serclient = new Service.WebService1SoapClient()
public async Task<bool> CheckUser(string UserName)
{
var resp = await serClient.CheckUserAsync(UserName);
bool result = resp.Body.CheckUserResult;
return result;
}
gesTab.CheckUser是检查数据库的方法。
public bool CheckUser(string username)
{
bool e = gestTab.CheckUser(username);
return e;
}
当程序运行时,nig只在该函数的第一行停止,我不明白为什么。
我已经通过使用指针来尝试通过不断获取指针只能在不安全的上下文中使用它来进行尝试。
如果我不能这样做,该如何返回数据?
谢谢大家。
答案 0 :(得分:1)
您必须等待像这样从db等检索数据的方法,
public async Task<bool> CheckUser(string username)
{
bool e = await gestTab.CheckUser(username);
return e;
}
由于您的方法发出了异步请求,但未等待响应,因此您的应用程序意外崩溃。