我有以下方法可以正常使用:
1.这是使用"异步等待"的方法:
public async Task AddClients(string clientId)
{
bool isAlreadyAdded = await CheckIsClientExists(clientId);
if(isAlreadyAdded)
{
await AddNewClientToGroup(clientId);
}
}
2.这是方法正在使用GetAwaiter()方法:
public async Task AddClients(string clientId)
{
bool isAlreadyAdded = await CheckIsClientExists(clientId);
if(isAlreadyAdded)
{
AddNewClientToGroup(clientId).GetAwaiter().GetResult();
}
}
我见过link:Async await vs GetAwaiter().GetResult() and callback。 而这还没有解释为什么以及GetAwaiter()如何导致死锁情况。
有人可以解释两种方法之间的区别,即await和GetAwaiter()?