[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Collapse]Cross-Platform Core Libraries
 [Expand]DevExpress Data Library
 [Expand]DevExpress Pivot Grid Core Library
 [Expand]Miscellaneous
 [Collapse]API Reference
  [Collapse]DevExpress.Data
    ColumnSortOrder Enumeration
   [Expand]CustomSummaryEventArgs Class
    CustomSummaryEventHandler Delegate
   [Expand]CustomSummaryExistEventArgs Class
    CustomSummaryExistEventHandler Delegate
    CustomSummaryProcess Enumeration
    ExceptionAction Enumeration
   [Expand]IBoundProperty Interface
   [Expand]IDisplayNameProvider Interface
   [Expand]IParameter Interface
   [Expand]IRelationList Interface
   [Expand]IRelationListEx Interface
   [Collapse]RealTimeSource Class
     RealTimeSource Members
     RealTimeSource Constructor
    [Expand]RealTimeSource Properties
    [Expand]RealTimeSource Methods
   [Expand]RowDeletedEventArgs Class
   [Expand]RowDeletingEventArgs Class
   [Expand]SelectionChangedEventArgs Class
    SelectionChangedEventHandler Delegate
   [Expand]ServerModeExceptionThrownEventArgs Class
   [Expand]ServerModeInconsistencyDetectedEventArgs Class
   [Expand]SubstituteFilterEventArgs Class
    SummaryItemType Enumeration
    UnboundColumnType Enumeration
   [Expand]UnboundSource Class
   [Expand]UnboundSourceListChangedEventArgs Class
   [Expand]UnboundSourceProperty Class
   [Expand]UnboundSourcePropertyCollection Class
   [Expand]UnboundSourceValueNeededEventArgs Class
   [Expand]UnboundSourceValuePushedEventArgs Class
   [Expand]VirtualServerModeConfigurationInfo Class
   [Expand]VirtualServerModeGetUniqueValuesEventArgs Class
   [Expand]VirtualServerModeRowsEventArgs Class
   [Expand]VirtualServerModeRowsTaskResult Class
   [Expand]VirtualServerModeSource Class
   [Expand]VirtualServerModeTotalSummaryEventArgs Class
  [Expand]DevExpress.Data.Browsing
  [Expand]DevExpress.Data.Browsing.Design
  [Expand]DevExpress.Data.Camera
  [Expand]DevExpress.Data.Controls
  [Expand]DevExpress.Data.Controls.ExpressionEditor
  [Expand]DevExpress.Data.Entity
  [Expand]DevExpress.Data.Filtering
  [Expand]DevExpress.Data.Filtering.Exceptions
  [Expand]DevExpress.Data.Filtering.Helpers
  [Expand]DevExpress.Data.Linq
  [Expand]DevExpress.Data.ODataLinq
  [Expand]DevExpress.Data.PivotGrid
  [Expand]DevExpress.Data.PLinq
  [Expand]DevExpress.Data.TreeList
  [Expand]DevExpress.Data.Utils
  [Expand]DevExpress.Data.Utils.ServiceModel
  [Expand]DevExpress.Data.WcfLinq
  [Expand]DevExpress.Data.WizardFramework
  [Expand]DevExpress.Data.XtraReports.DataProviders
  [Expand]DevExpress.Data.XtraReports.Labels
  [Expand]DevExpress.Data.XtraReports.ServiceModel
  [Expand]DevExpress.Data.XtraReports.ServiceModel.DataContracts
  [Expand]DevExpress.Data.XtraReports.Wizard
  [Expand]DevExpress.Data.XtraReports.Wizard.Presenters
  [Expand]DevExpress.Data.XtraReports.Wizard.Views
  [Expand]DevExpress.DataAccess
  [Expand]DevExpress.DataAccess.ConnectionParameters
  [Expand]DevExpress.DataAccess.DataFederation
  [Expand]DevExpress.DataAccess.EntityFramework
  [Expand]DevExpress.DataAccess.Excel
  [Expand]DevExpress.DataAccess.ExpressionEditor
  [Expand]DevExpress.DataAccess.Json
  [Expand]DevExpress.DataAccess.Localization
  [Expand]DevExpress.DataAccess.ObjectBinding
  [Expand]DevExpress.DataAccess.Sql
  [Expand]DevExpress.DataAccess.Sql.DataApi
  [Expand]DevExpress.DataAccess.UI
  [Expand]DevExpress.DataAccess.UI.Design
  [Expand]DevExpress.DataAccess.UI.EntityFramework
  [Expand]DevExpress.DataAccess.UI.Excel
  [Expand]DevExpress.DataAccess.UI.Localization
  [Expand]DevExpress.DataAccess.UI.ObjectBinding
  [Expand]DevExpress.DataAccess.UI.Sql
  [Expand]DevExpress.DataAccess.UI.Wizard
  [Expand]DevExpress.DataAccess.UI.Wizard.Services
  [Expand]DevExpress.DataAccess.UI.Wizard.Views
  [Expand]DevExpress.DataAccess.Web
  [Expand]DevExpress.DataAccess.Wizard
  [Expand]DevExpress.DataAccess.Wizard.Model
  [Expand]DevExpress.DataAccess.Wizard.Presenters
  [Expand]DevExpress.DataAccess.Wizard.Services
  [Expand]DevExpress.DataAccess.Wizard.Views
  [Expand]DevExpress.Diagram.Core
  [Expand]DevExpress.Diagram.Core.Layout
  [Expand]DevExpress.Diagram.Core.Localization
  [Expand]DevExpress.Diagram.Core.Shapes
  [Expand]DevExpress.Diagram.Core.Themes
  [Expand]DevExpress.DocumentServices.ServiceModel
  [Expand]DevExpress.DocumentServices.ServiceModel.Client
  [Expand]DevExpress.DocumentServices.ServiceModel.DataContracts
  [Expand]DevExpress.DocumentView
  [Expand]DevExpress.Entity.Model
  [Expand]DevExpress.Entity.ProjectModel
  [Expand]DevExpress.Export
  [Expand]DevExpress.Export.Xl
  [Expand]DevExpress.Map
  [Expand]DevExpress.Mvvm
  [Expand]DevExpress.Mvvm.DataAnnotations
  [Expand]DevExpress.Mvvm.DataModel
  [Expand]DevExpress.Mvvm.Gantt
  [Expand]DevExpress.Mvvm.ModuleInjection
  [Expand]DevExpress.Mvvm.UI
  [Expand]DevExpress.Mvvm.Utils
  [Expand]DevExpress.Mvvm.ViewModel
  [Expand]DevExpress.Office.Crypto
  [Expand]DevExpress.PivotGrid.Printing
  [Expand]DevExpress.Printing
  [Expand]DevExpress.Printing.Core
  [Expand]DevExpress.Printing.ExportHelpers
  [Expand]DevExpress.ReportServer.Printing
  [Expand]DevExpress.ReportServer.Printing.Services
  [Expand]DevExpress.ReportServer.ServiceModel.Client
  [Expand]DevExpress.ReportServer.ServiceModel.ConnectionProviders
  [Expand]DevExpress.ReportServer.ServiceModel.DataContracts
  [Expand]DevExpress.Schedule
  [Expand]DevExpress.Security.Resources
  [Expand]DevExpress.Services
  [Expand]DevExpress.Sparkline
  [Expand]DevExpress.TreeMap
  [Expand]DevExpress.Utils
  [Expand]DevExpress.Utils.Commands
  [Expand]DevExpress.Utils.Controls
  [Expand]DevExpress.Utils.Filtering.Internal
  [Expand]DevExpress.Utils.IoC
  [Expand]DevExpress.Utils.Localization
  [Expand]DevExpress.Utils.Serializing.Helpers
  [Expand]DevExpress.Utils.Svg
  [Expand]DevExpress.WebUtils
  [Expand]DevExpress.Xpf.Core
  [Expand]DevExpress.Xpf.Printing
  [Expand]DevExpress.Xpo
  [Expand]DevExpress.Xpo.DB
  [Expand]DevExpress.Xpo.DB.Exceptions
  [Expand]DevExpress.Xpo.DB.Helpers
  [Expand]DevExpress.Xpo.Helpers
  [Expand]DevExpress.XtraCharts
  [Expand]DevExpress.XtraCharts.Localization
  [Expand]DevExpress.XtraCharts.Native
  [Expand]DevExpress.XtraCharts.Printing
  [Expand]DevExpress.XtraEditors
  [Expand]DevExpress.XtraEditors.DXErrorProvider
  [Expand]DevExpress.XtraExport.Csv
  [Expand]DevExpress.XtraGauges.Base
  [Expand]DevExpress.XtraGauges.Core
  [Expand]DevExpress.XtraGauges.Core.Base
  [Expand]DevExpress.XtraGauges.Core.Drawing
  [Expand]DevExpress.XtraGauges.Core.Localization
  [Expand]DevExpress.XtraGauges.Core.Model
  [Expand]DevExpress.XtraGauges.Core.Primitive
  [Expand]DevExpress.XtraGrid
  [Expand]DevExpress.XtraPivotGrid
  [Expand]DevExpress.XtraPivotGrid.Customization
  [Expand]DevExpress.XtraPivotGrid.Data
  [Expand]DevExpress.XtraPivotGrid.Localization
  [Expand]DevExpress.XtraPivotGrid.Selection
  [Expand]DevExpress.XtraPrinting
  [Expand]DevExpress.XtraPrinting.BarCode
  [Expand]DevExpress.XtraPrinting.Caching
  [Expand]DevExpress.XtraPrinting.DataNodes
  [Expand]DevExpress.XtraPrinting.Drawing
  [Expand]DevExpress.XtraPrinting.Export
  [Expand]DevExpress.XtraPrinting.Export.Web
  [Expand]DevExpress.XtraPrinting.Localization
  [Expand]DevExpress.XtraPrinting.Native
  [Expand]DevExpress.XtraPrinting.Shape
  [Expand]DevExpress.XtraPrinting.Shape.Native
  [Expand]DevExpress.XtraPrinting.WebClientUIControl.DataContracts
  [Expand]DevExpress.XtraPrinting.XamlExport
  [Expand]DevExpress.XtraPrintingLinks
  [Expand]DevExpress.XtraReports
  [Expand]DevExpress.XtraReports.Design
  [Expand]DevExpress.XtraReports.Parameters
  [Expand]DevExpress.XtraReports.ReportGeneration
  [Expand]DevExpress.XtraReports.UI
  [Expand]DevExpress.XtraScheduler
  [Expand]DevExpress.XtraScheduler.Compatibility
  [Expand]DevExpress.XtraScheduler.Drawing
  [Expand]DevExpress.XtraScheduler.Exchange
  [Expand]DevExpress.XtraScheduler.iCalendar
  [Expand]DevExpress.XtraScheduler.iCalendar.Components
  [Expand]DevExpress.XtraScheduler.Localization
  [Expand]DevExpress.XtraScheduler.Native
  [Expand]DevExpress.XtraScheduler.Outlook
  [Expand]DevExpress.XtraScheduler.Outlook.Interop
  [Expand]DevExpress.XtraScheduler.Reporting
  [Expand]DevExpress.XtraScheduler.Services
  [Expand]DevExpress.XtraScheduler.Services.Implementation
  [Expand]DevExpress.XtraScheduler.Tools
  [Expand]DevExpress.XtraScheduler.UI
  [Expand]DevExpress.XtraScheduler.Xml
  [Expand]DevExpress.XtraSpellChecker
  [Expand]DevExpress.XtraSpellChecker.Rules
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

RealTimeSource Class

The component that acts as an asynchronous bridge between a data-aware control and rapidly changing data.

Namespace:DevExpress.Data
Assembly:DevExpress.Data.v19.1.dll

Expanded Syntax

Expanded Remarks

The RealTimeSource performs event marshaling between different threads (if needed), merges or reorders changes to achieve better performance, and throttles changes to achieve smoothness. As a result, the bound control stays responsive even if there are tens of thousands of changes per second in the underlying data source.

Expanded Use Cases and Limitations

  • The RealTimeSource should be used in applications where you are required to display a high frequency of data updates (tens of thousands of updates per second). Do not use this with static data, or when there are no performance issues with the directly connected control.
  • Editing data at runtime is not supported.
  • The RealTimeSource does not track database changes itself - it is bound to its data source and has no direct connection to a database. So, the RealTimeSource does not receive notifications that the database was changed. It is necessary to update the data source from your database manually to refresh the displayed data.

Expanded Bind a Data-Aware Control to Data using the RealTimeSource

Note

The complete example for the WinForms Data Grid is provided in the Data Grid and Editors demo. Run this demo and choose Performance | Real-Time Data in the navigation panel. A sample project for the WPF Data Grid can be downloaded from the How to use RealTimeSource Code Example.

To use the RealTimeSource, create an instance of this class and initialize the DataSource property. Then, use the created RealTimeSource object as the control's data source (e.g., assign it to the DevExpress.XtraGrid.GridControl.DataSource or DevExpress.Xpf.Grid.DataControlBase.ItemsSource property).

In this case, the Items is a list or collection that provides IBindingList.ListChanged, INotifyCollectionChanged.CollectionChanged and/or INotifyPropertyChanged.PropertyChanged events to be handled by the RealTimeSource (e.g., ObservableCollection<T>). For instance, it can be a collection of Entity Framework objects bound to data, or a list of unbound objects that are generated in code. You can limit the visible properties set using the DisplayableProperties property. If you want to track only the list changes and ignore modifications of particular property values, set the IgnoreItemEvents property to true.

You can put the RealTimeSource component on a form like any other component. To use the RealTimeSource in the designer, drag-and-drop it from the DX.19.1: Data & Analytics toolbox category to the form where the grid control is located (below is an example for the WinForms Data Grid control).

Set the grid control's DataSource to realTimeSource1 using the GridControl Tasks smart tag panel (or in the Properties window).

Then, use the RealTimeSource Tasks smart tag panel or the Properties window to set the actual data source to the DataSource property.

As a result, the data will be bridged to the grid by the RealTimeSource component.

Expanded Inheritance Hierarchy

System.Object
    System.MarshalByRefObject
       System.ComponentModel.Component
          RealTimeSource

Expanded See Also

Is this topic helpful?​​​​​​​