AmazonCognitoIdentityProviderClient的死锁问题通常发生在执行异步调用时。为了解决这个问题,可以使用ConfigureAwait(false)来避免SynchronizationContext的上下文切换。以下是一个参考示例:
using Amazon.CognitoIdentityProvider;
using System.Threading.Tasks;
namespace MyApp
{
public class CognitoService
{
private readonly AmazonCognitoIdentityProviderClient _client;
public CognitoService(string region)
{
var config = new AmazonCognitoIdentityProviderConfig
{
RegionEndpoint = RegionEndpoint.GetBySystemName(region)
};
_client = new AmazonCognitoIdentityProviderClient(config);
}
public async Task SignUpAsync(SignUpRequest request)
{
var response = await _client.SignUpAsync(request).ConfigureAwait(false);
return response;
}
}
}
在上面的示例中,我们通过传递false告诉方法不等待调用继续使用原始线程,而不等待SynchronizationContext上下文切换发生。这样就可以避免死锁问题的发生。
上一篇:AmazonCognito和LinkedInLearningxAPI-作用域问题
下一篇:AmazonCognitoIdentityProviderException: 用户未被授权在资源上执行cognito-idp:DescribeUserPool操作。