await正在停止程序的执行

时间:2015-10-20 12:13:18

标签: c# .net async-await

我有一个使用await的简单方法。但问题是,一旦我到达该行,程序的执行就会停止,我不知道为什么。这是我的代码.. < / p>

public async void GetUserdetails() {

var upn = "Custom Name";
var userLookupTask = activeDirectoryClient.Users.Where(
            user => user.UserPrincipalName.Equals(
                upn, StringComparison.CurrentCultureIgnoreCase)).ExecuteSingleAsync();

User userJohnDoe = (User)await userLookupTask;
Console.WriteLine(userJohnDoe.UserPrincipalName);
Console.WriteLine(userJohnDoe.DisplayName);
Console.ReadLine();
}

有任何方法可以让执行运行并在Console.Please帮助上查看值。感谢..

1 个答案:

答案 0 :(得分:6)

我怀疑您的控制台应用只是退出。

要阻止您的控制台应用退出,您应该从Task返回GetUserdetails并在该任务上致电Wait

static void Main()
{
  GetUserDetailsAsync().Wait();
}

static async Task GetUserDetailsAsync()
{
  ...
}

请注意,Wait通常不用于异步编程;它通常仅在控制台应用的Main方法中使用一次。

或者,您可以将ReadLine移到Main方法中。