Поделиться через


ImmutableInterlocked Класс

Определение

Содержит механизмы обмена с взаимоблокировкой для неизменяемых коллекций.

Пакет NuGet: System.Collections.Immutable (сведения о неизменяемых коллекциях и способах их установки)

public ref class ImmutableInterlocked abstract sealed
public static class ImmutableInterlocked
type ImmutableInterlocked = class
Public Class ImmutableInterlocked
Наследование
ImmutableInterlocked

Методы

AddOrUpdate<TKey,TValue>(ImmutableDictionary<TKey,TValue>, TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>)

Возвращает значение из словаря после добавления или изменения существующей записи.

AddOrUpdate<TKey,TValue>(ImmutableDictionary<TKey,TValue>, TKey, TValue, Func<TKey,TValue,TValue>)

Возвращает значение из словаря после добавления или изменения существующей записи.

Enqueue<T>(ImmutableQueue<T>, T)

Атомарным образом добавляет элемент в конец очереди.

GetOrAdd<TKey,TValue,TArg>(ImmutableDictionary<TKey,TValue>, TKey, Func<TKey,TArg,TValue>, TArg)

Возвращает из словаря значение для указанного ключа или добавляет в него новое значение, если такой ключ не найден.

GetOrAdd<TKey,TValue>(ImmutableDictionary<TKey,TValue>, TKey, Func<TKey,TValue>)

Возвращает из словаря значение для указанного ключа или добавляет в него новое значение, если такой ключ не найден.

GetOrAdd<TKey,TValue>(ImmutableDictionary<TKey,TValue>, TKey, TValue)

Возвращает из словаря значение для указанного ключа или добавляет в него новое значение, если такой ключ не найден.

InterlockedCompareExchange<T>(ImmutableArray<T>, ImmutableArray<T>, ImmutableArray<T>)

Проверяет два неизменяемых массива на равенство и, если они равны, заменяет один из них.

InterlockedExchange<T>(ImmutableArray<T>, ImmutableArray<T>)

Задает для массива значение указанного массива и возвращает ссылку на исходный массив (вся операция выполняется атомарным образом).

InterlockedInitialize<T>(ImmutableArray<T>, ImmutableArray<T>)

Задает для массива значение указанного массива, если он не инициализирован.

Push<T>(ImmutableStack<T>, T)

Помещает в стек новый элемент.

TryAdd<TKey,TValue>(ImmutableDictionary<TKey,TValue>, TKey, TValue)

Добавляет в словарь указанные ключ и значение, если такого ключа нет в словаре.

TryDequeue<T>(ImmutableQueue<T>, T)

Атомарным образом удаляет и возвращает указанный элемент в голове очереди, если она не пуста.

TryPop<T>(ImmutableStack<T>, T)

Удаляет верхний элемент стека, если в нем есть элементы для удаления.

TryRemove<TKey,TValue>(ImmutableDictionary<TKey,TValue>, TKey, TValue)

Удаляет элемент с указанным ключом, если такой ключ существует.

TryUpdate<TKey,TValue>(ImmutableDictionary<TKey,TValue>, TKey, TValue, TValue)

Устанавливает для указанного ключа заданное значение, если для него еще не установлено определенное значение.

Update<T,TArg>(ImmutableArray<T>, Func<ImmutableArray<T>,TArg,ImmutableArray<T>>, TArg)

Изменяет неизменяемый массив на месте с семантикой транзакций оптимистичной блокировки с помощью указанной функции преобразования. Преобразование извлекается столько раз, сколько требуется для устранения конфликта оптимистической блокировки.

Update<T,TArg>(T, Func<T,TArg,T>, TArg)

Изменяет значение на месте с семантикой транзакций оптимистичной блокировки с помощью указанной функции преобразования. Преобразование извлекается столько раз, сколько требуется для устранения конфликта оптимистической блокировки.

Update<T>(ImmutableArray<T>, Func<ImmutableArray<T>,ImmutableArray<T>>)

Изменяет неизменяемый массив на месте с семантикой транзакций оптимистичной блокировки с помощью указанной функции преобразования. Преобразование извлекается столько раз, сколько требуется для устранения конфликта оптимистической блокировки.

Update<T>(T, Func<T,T>)

Изменяет значение на месте с семантикой транзакций оптимистичной блокировки с помощью указанной функции преобразования. Преобразование извлекается столько раз, сколько требуется для устранения конфликта оптимистической блокировки.

Применяется к

Потокобезопасность

Данный тип потокобезопасен.