C#C
C#3y ago
SWEETPONY

❔ ✅ Can someone help me to change GetAwaiter().GetResult() to lazy?

I have this:
public class MessagingClientCache
{
    private readonly IMessagingClientFactory _messagingClientFactory;
    
    private readonly ConcurrentDictionary<string, IMessagingClient> _messagingClients = 
        new();

    public MessagingClientCache(IMessagingClientFactory messagingClientFactory)
    {
        _messagingClientFactory = messagingClientFactory;
    }
    
    public async Task<IMessagingClient> MessagingClientGet(string name) =>
        _messagingClients.GetOrAdd(
            key: name,
            valueFactory: _ => _messagingClientFactory.Create(name).GetAwaiter().GetResult());
}


As I know GetAwaiter().GetResult() is not good and I should use lazy but I can't understand how it should look
Was this page helpful?