Pra*_*eep 5 c# asynchronous async-await
我有以下方法对我来说很好用:
1.这是使用“异步等待”方法:
public async Task AddClients(string clientId)
{
bool isAlreadyAdded = await CheckIsClientExists(clientId);
if(isAlreadyAdded)
{
await AddNewClientToGroup(clientId);
}
}
Run Code Online (Sandbox Code Playgroud)
2.这是使用 GetAwaiter() 方法的方法:
public async Task AddClients(string clientId)
{
bool isAlreadyAdded = await CheckIsClientExists(clientId);
if(isAlreadyAdded)
{
AddNewClientToGroup(clientId).GetAwaiter().GetResult();
}
}
Run Code Online (Sandbox Code Playgroud)
我看过链接:Async await vs GetAwaiter().GetResult() 和 callback。而这并没有解释 GetAwaiter() 导致死锁情况的原因和方式。
谁能解释这两种方法之间的区别,即 await 和 GetAwaiter()?