C# 任务<;布尔>;Xamarin.Forms中的错误使程序停止

C# 任务<;布尔>;Xamarin.Forms中的错误使程序停止,c#,xamarin.forms,C#,Xamarin.forms,我最近开始与Xamarin合作,我的noob水平现在很高,我会继续我的问题 我正在开发一个应用程序,可以访问Web服务从DB发送和导入数据,现在我正在处理一个登录页面,我有一个方法可以检查用户是否存在于数据库中,当我在Xamarin中添加服务引用时,所有方法都变为异步,因此我需要使用任务 因此,我实现了任务,它工作得很好,但我有一个问题,我无法发送服务器的响应,我做了一些研究,发现任务方法没有返回,为此我可以使用Task,我以这种方式实现: 服务中的CheckUser方法 serclient =

我最近开始与Xamarin合作,我的noob水平现在很高,我会继续我的问题

我正在开发一个应用程序,可以访问Web服务从DB发送和导入数据,现在我正在处理一个登录页面,我有一个方法可以检查用户是否存在于数据库中,当我在Xamarin中添加服务引用时,所有方法都变为异步,因此我需要使用任务

因此,我实现了任务,它工作得很好,但我有一个问题,我无法发送服务器的响应,我做了一些研究,发现任务方法没有返回,为此我可以使用Task,我以这种方式实现:

服务中的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;
}
当程序运行时,它只是在函数的第一行停止,我不明白为什么

我已经通过使用指针尝试过了,我一直认为指针只能在不安全的上下文中使用

如果我不能这样做,我可以做什么来返回数据


谢谢大家。

您必须等待从数据库等检索数据的方法。如下所示

public async Task<bool> CheckUser(string username)
{
  bool e = await gestTab.CheckUser(username);
  return e;
}
公共异步任务CheckUser(字符串用户名)
{
bool e=wait gestTab.CheckUser(用户名);
返回e;
}

由于您的方法正在启动异步请求但没有等待响应,因此您的应用程序意外崩溃。

不起作用,错误“异步方法的返回类型必须为void,Task,Task,Task,Task-like-type,IAsyncEnumerable或IAsyncEnumerator”不是我标记下来的…即使Justin Lessard做了更改,也不起作用,给出有关getAwaiterMy异步方法的错误。该方法必须正常工作。因为它的返回类型是Task。您还可以尝试通过异步方法的GetAwaiter().GetResult()访问数据。
public async Task<bool> CheckUser(string username)
{
  bool e = await gestTab.CheckUser(username);
  return e;
}