skip navigation
  • Product Bundles

    DevCraft

    All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:

    • AI Coding Assistants
    • Embedded Reporting
    • Document Processing Libraries
    • SSO Account Sign-in

    Web

    Kendo UI UI for Angular UI for Vue UI for jQuery KendoReact UI for Blazor UI for ASP.NET Core UI for ASP.NET MVC UI for ASP.NET AJAX

    Mobile

    UI for .NET MAUI

    Document Management

    Telerik Document Processing

    Desktop

    UI for .NET MAUI UI for WinUI UI for WinForms UI for WPF

    Reporting

    Telerik Reporting Telerik Report Server

    Testing & Mocking

    Test Studio Telerik JustMock

    CMS

    Sitefinity

    AI Productivity Tools

    AI Coding Assistants

    UI/UX Tools

    ThemeBuilder Design System Kit Templates and Building Blocks

    Debugging

    Fiddler Fiddler Everywhere Fiddler Classic Fiddler Everywhere Reporter FiddlerCore

    Free Tools

    KendoReact Free VB.NET to C# Converter Testing Framework
    View all products
  • Overview
  • Demos
    • What's New
    • Roadmap
    • Release History
  • Support and Learning

    • Support and Learning Hub
    • First Steps
    • Docs
    • Demos
    • Virtual Classroom
    • Forums
    • Videos
    • Blogs
    • Accessibility
    • Submit a Ticket

    Productivity and Design Tools

    • Visual Studio Extensions
    • Visual Studio Templates
    • Embedded Reporting
  • Pricing
  • Shopping cart
    • Account Overview
    • Your Licenses
    • Downloads
    • Support Center
    • Forum Profile
    • Payment Methods
    • Edit Profile
    • Log out
  • Login
  • Contact Us
  • Try now

Class SynchronizedCollection<TItem>

Represents a thread-safe, synchronized collection that wraps an underlying source collection and provides additional functionality such as item transformation and disposal management.

Inheritance
System.Object
BatchObservableCollection<TItem>
SynchronizedCollection<TItem>
Inherited Members
BatchObservableCollection<TItem>.InsertMany(Int32, IEnumerable<TItem>)
BatchObservableCollection<TItem>.RemoveMany(Int32, Int32)
BatchObservableCollection<TItem>.OnCollectionChanged(NotifyCollectionChangedEventArgs)
Namespace: Telerik.Windows.Core
Assembly: Telerik.Windows.Scheduling.Core.dll

Syntax

public class SynchronizedCollection<TItem> : BatchObservableCollection<TItem>, IDisposable
Type Parameters
TItem

The type of items contained in the collection.

Remarks

The SynchronizedCollection<TItem> class is designed to synchronize changes between an underlying source collection and the synchronized collection. It supports wrapping items from the source collection using a transformation function and optionally disposing of items when they are removed from the collection. This collection is particularly useful in scenarios where changes to the source collection need to be reflected in a thread-safe manner, or when additional actions (e.g., cleanup) are required for items in the collection.

Methods

Create(IEnumerable, Func<Object, TItem>, Boolean)

Declaration
public static SynchronizedCollection<TItem> Create(IEnumerable sourceCollection, Func<object, TItem> wrapFunction, bool shouldDisposeItems = true)
Parameters
System.Collections.IEnumerable sourceCollection

System.Func<System.Object, TItem> wrapFunction

System.Boolean shouldDisposeItems

Returns
SynchronizedCollection<TItem>

Create(IEnumerable, Func<Object, Int32, TItem>, Action<TItem>, Boolean)

Declaration
public static SynchronizedCollection<TItem> Create(IEnumerable sourceCollection, Func<object, int, TItem> wrapFunction, Action<TItem> previewCollectionChangedAction = null, bool shouldDisposeItems = true)
Parameters
System.Collections.IEnumerable sourceCollection

System.Func<System.Object, System.Int32, TItem> wrapFunction

System.Action<TItem> previewCollectionChangedAction

System.Boolean shouldDisposeItems

Returns
SynchronizedCollection<TItem>

Create<TSourceItem>(IEnumerable<TSourceItem>, Func<TSourceItem, TItem>, Boolean)

Declaration
public static SynchronizedCollection<TItem> Create<TSourceItem>(IEnumerable<TSourceItem> sourceCollection, Func<TSourceItem, TItem> wrapFunction, bool shouldDisposeItems = true)
Parameters
System.Collections.Generic.IEnumerable<TSourceItem> sourceCollection

System.Func<TSourceItem, TItem> wrapFunction

System.Boolean shouldDisposeItems

Returns
SynchronizedCollection<TItem>

Type Parameters
TSourceItem

Create<TSourceItem>(IEnumerable<TSourceItem>, Func<TSourceItem, Int32, TItem>, Boolean)

Declaration
public static SynchronizedCollection<TItem> Create<TSourceItem>(IEnumerable<TSourceItem> sourceCollection, Func<TSourceItem, int, TItem> wrapFunction, bool shouldDisposeItems = true)
Parameters
System.Collections.Generic.IEnumerable<TSourceItem> sourceCollection

System.Func<TSourceItem, System.Int32, TItem> wrapFunction

System.Boolean shouldDisposeItems

Returns
SynchronizedCollection<TItem>

Type Parameters
TSourceItem

Dispose()

Declaration
public void Dispose()

Dispose(Boolean)

Declaration
protected virtual void Dispose(bool disposing)
Parameters
System.Boolean disposing

Extension Methods

CollectionExtensions.ToEnumerable<T>(T)
EnumerableExtensions.ToEnumerable<T>(T)
Getting Started
  • Install Now
  • Demos
  • SDK Samples Browser
  • Sample Applications
Support Resources
  • Code Library
  • Knowledge Base
  • MVVM Support
  • Videos
  • GitHub SDK Repository
Community
  • Forums
  • Blogs
  • XAML Feedback Portal
  • Document Processing Feedback Portal

Copyright © 2018 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.