Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wait正在停止程序的执行_C#_.net_Async Await - Fatal编程技术网

C# wait正在停止程序的执行

C# wait正在停止程序的执行,c#,.net,async-await,C#,.net,Async Await,我有一个简单的方法,使用wait。但是问题是,当我到达那一行时,程序的执行就停止了,我不知道为什么。这是我的代码 public async void GetUserdetails() { var upn = "Custom Name"; var userLookupTask = activeDirectoryClient.Users.Where( user => user.UserPrincipalName.Equals( upn,

我有一个简单的方法,使用
wait
。但是问题是,当我到达那一行时,程序的执行就停止了,我不知道为什么。这是我的代码

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();
}

运行执行并查看控制台上的值的任何方法。请提供帮助。谢谢。

我怀疑您的控制台应用程序正在退出

要防止控制台应用程序退出,您应该从
GetUserdetails
返回
Task
,然后调用
Wait
执行该任务:

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

static async Task GetUserDetailsAsync()
{
  ...
}
注意,
Wait
通常不用于异步编程;它通常只在控制台应用程序的
Main
方法中使用一次


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

检查ExecuteSingleAsync的实现,是否是内部同步调用,是否是阻塞,这可能导致当前issue@GeorgePolevoy这是如何重复的?如何调用
GetUserdetails
?这是控制台应用程序吗?你是在Main()中调用它吗?我的猜测是操作没有等待,这就是为什么提到的Main会过早退出。你的问题需要正确地表明控制台正在退出,我猜它卡住了,没有继续前进,但实际上你有主线程正在退出。使用下面的答案等待执行异步完成