Files
MQTTnet/Frameworks/MQTTnet.NetStandard/Internal/AsyncAutoResetEvent.cs
T

27 lines
568 B
C#

using System;
using System.Threading;
using System.Threading.Tasks;
namespace MQTTnet.Internal
{
public sealed class AsyncAutoResetEvent : IDisposable
{
private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(0, 1);
public Task WaitOneAsync(CancellationToken cancellationToken)
{
return _semaphore.WaitAsync(cancellationToken);
}
public void Set()
{
_semaphore.Release();
}
public void Dispose()
{
_semaphore?.Dispose();
}
}
}