Есть ли в .NET 4 коллекция Threadsafe Observable?

Платформа: (или любую коллекцию в этом отношении) нельзя использовать из вызовов, отличных от потока пользовательского интерфейса, и возникает исключение:

«NotSupportedException - этот тип CollectionView не поддерживает изменения своей SourceCollection из потока, отличного от потока Dispatcher. "

Я пробовал использовать коллекцию

System.Collections.Concurrent.ConcurrentBag

, но она не реализует интерфейс INotifyCollectionChanged. Следовательно, мой пользовательский интерфейс WPF не будет обновляться автоматически.

Итак, существует ли класс коллекции, который реализует как уведомления об изменении свойств / коллекций, так и разрешает вызовы из других потоков, не связанных с пользовательским интерфейсом?

По моему первоначальному запросу bing / googling, из коробки ничего не предусмотрено.

Изменить: я создал свою собственную коллекцию, унаследованную от ConcurrentBag , а также реализует интерфейс INotifyCollectionChanged . Но, к моему удивлению, даже после его вызова в отдельных задачах пользовательский интерфейс WPF зависает, пока задача не будет завершена. Разве задачи не должны выполняться параллельно и не блокировать поток пользовательского интерфейса ?

Заранее благодарим за любые предложения.

21
задан Vaibhav 10 October 2010 в 10:39
поделиться