Здравствуйте, scif, Вы писали:
S>Только Вы не учли, что добавив в колекцию элемент — Вы ее рассинхронизировали,
Бррр, это как, если не секрет? Если посмотреть рефлектором, статический метод Synchronized возвращает екземпляр Hashtable.SyncHashtable. Этот класс является просто оберткой, предоставляющий синхронизированный доступ к хештаблице.
Как можно рассинхронизировать коллекцию, добавив в нее элемент ?!
S>а значит и энумератор НЕ ПОМОЖЕТ. Попробуем немножко перестроить ход наших мыслей
S>//Создаем пустую хештабличку
S>Hashtable ht = Hashtable();
S>//Добаляем в нее элемент
S>ht.Add(1,1);
S>//Приводим к интерфейсу спеуиального синхронного представителя нашей таблички.
S>ICollection col = (ICollection)ht.SyncRoot;
//Рефлектор:
public virtual object SyncRoot
{
get
{
return this;
}
}
Так что "спеуиальный синхронный представитель нашей таблички" это есть сама хештаблица.
Не морочьте людям голову, если не знаете о чем говорите