ConcurrentStack
ConcurrentStack<T> безопасна
для нескольких потоков. Последний
Push
снимается первым через
TryPop.
Примеры - один поток для предсказуемого вывода.
Синтаксис
ConcurrentStack<int> stack = new ConcurrentStack<int>();
Пример
Давайте положить два числа:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentStack<int> stack = new ConcurrentStack<int>();
stack.Push(1);
stack.Push(2);
Console.WriteLine(stack.Count);
}
}
Результат выполнения кода:
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 int res);
Console.WriteLine(res);
}
}
Результат выполнения кода:
2
Пример
Давайте проверить пустую стопку:
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,
положить на вершину -
TryPop,
снять с вершины -
ConcurrentQueue,
очередь FIFO -
ConcurrentBag,
мешок без порядка