TryPeek
TryPeek у
ConcurrentQueue
не удаляет элемент. После успешного
TryPeek
TryDequeue
снимает тот же элемент. Пустая очередь -
false. Тип безопасен для нескольких
потоков; примеры - один поток.
Синтаксис
bool ok = queue.TryPeek(out T item);
Пример
Давайте заглянуть в голову очереди:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentQueue<int> queue = new ConcurrentQueue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.TryPeek(out int res);
Console.WriteLine(res);
}
}
Результат выполнения кода:
1
Пример
Давайте снять элемент после TryPeek:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentQueue<int> queue = new ConcurrentQueue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.TryPeek(out int peek);
queue.TryDequeue(out int res);
Console.WriteLine(peek);
Console.WriteLine(res);
}
}
Результат выполнения кода:
1
1
Пример
Давайте вызвать TryPeek для пустой очереди:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentQueue<int> queue = new ConcurrentQueue<int>();
bool res = queue.TryPeek(out _);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Смотрите также
-
TryDequeue,
снять элемент -
Enqueue,
добавить в хвост -
ConcurrentQueue,
класс очереди -
ConcurrentStack,
стопка LIFO