Я полностью понимаю атомарность, которую предоставляет класс Threading.Interlocked; Однако я не понимаю, почему функция Add предлагает только две перегрузки: одну для целых, другую для Longs. Почему бы не удваивать или какой-либо другой числовой тип в этом отношении?
Очевидно, что предполагаемый метод изменения Double - CompareExchange; Я УГАДАЮ это, потому что изменение Double - более сложная операция, чем изменение целого. Тем не менее мне непонятно, почему, если CompareExchange и Add могут принимать целые числа, они не могут также принимать парные числа.