Ответ 1
Да, может, вот условия (из MSDN):
- ArgumentNullException - когда ключ является нулевой ссылкой
- OverflowException - когда максимальное количество элементов было достигнуто
- Возвращает false, если элемент с таким же ключом уже существует
Просто повторюсь, это не имеет ничего общего с параллелизмом. Если вы беспокоитесь о двух потоках, вставляющих элемент одновременно, то может произойти следующее:
- Обе вставки работают нормально, если ключи разные.
- Одна вставка работает нормально и возвращает истину, другая вставка завершается неудачно (без исключения) и возвращает ложь. Это происходит, если два потока пытаются вставить элемент с одинаковым ключом, и в основном выигрывает только один, а другой проигрывает.