Ver a proveniência

New functions

This is to support the peek-and-publish model for the managed client
release/3.x.x
Paul Fake há 6 anos
committed by GitHub
ascendente
cometimento
9ff39c1fd9
Não foi encontrada uma chave conhecida para esta assinatura, na base de dados ID da chave GPG: 4AEE18F83AFDEB23
1 ficheiros alterados com 32 adições e 0 eliminações
  1. +32
    -0
      Source/MQTTnet/Internal/BlockingQueue.cs

+ 32
- 0
Source/MQTTnet/Internal/BlockingQueue.cs Ver ficheiro

@@ -55,6 +55,38 @@ namespace MQTTnet.Internal
_gate.WaitOne();
}
}
public TItem PeekAndWait()
{
while (true)
{
lock (_syncRoot)
{
if (_items.Count > 0)
{
return _items.First.Value;
}

if (_items.Count == 0)
{
_gate.Reset();
}
}

_gate.WaitOne();
}
}

public void RemoveFirstIfEqual(TItem item)
{
lock (_syncRoot)
{
if (_items.Count > 0 && EqualityComparer<TItem>.Default.Equals(_items.First.Value, item))
{
_items.RemoveFirst();
}
}
}

public TItem RemoveFirst()
{


Carregando…
Cancelar
Guardar