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