Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / System / Windows / Threading / DispatcherObject.cs / 1 / DispatcherObject.cs
using System; using System.Windows; using System.Threading; using MS.Internal.WindowsBase; // FriendAccessAllowed namespace System.Windows.Threading { ////// A DispatcherObject is an object associated with a /// ///. A DispatcherObject instance should /// only be access by the dispatcher's thread. /// /// Subclasses of public abstract class DispatcherObject { ///should enforce thread /// safety by calling on all their public /// methods to ensure the calling thread is the appropriate thread. /// /// DispatcherObject cannot be independently instantiated; that is, /// all constructors are protected. /// /// Returns the [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] public Dispatcher Dispatcher { get { // This property is free-threaded. return _dispatcher; } } // This method allows certain derived classes to break the dispatcher affinity // of our objects. [FriendAccessAllowed] // Built into Base, also used by Framework. internal void DetachFromDispatcher() { _dispatcher = null; } ///that this /// is associated with. /// /// Checks that the calling thread has access to this object. /// ////// Only the dispatcher thread may access DispatcherObjects. /// /// This method is public so that any thread can probe to /// see if it has access to the DispatcherObject. /// ////// True if the calling thread has access to this object. /// [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public bool CheckAccess() { // This method is free-threaded. bool accessAllowed = true; Dispatcher dispatcher = _dispatcher; // Note: a DispatcherObject that is not associated with a // dispatcher is considered to be free-threaded. if(dispatcher != null) { accessAllowed = dispatcher.CheckAccess(); } return accessAllowed; } ////// Verifies that the calling thread has access to this object. /// ////// Only the dispatcher thread may access DispatcherObjects. /// /// This method is public so that derived classes can probe to /// see if the calling thread has access to itself. /// [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public void VerifyAccess() { // This method is free-threaded. Dispatcher dispatcher = _dispatcher; // Note: a DispatcherObject that is not associated with a // dispatcher is considered to be free-threaded. if(dispatcher != null) { dispatcher.VerifyAccess(); } } ////// Instantiate this object associated with the current Dispatcher. /// protected DispatcherObject() { _dispatcher = Dispatcher.CurrentDispatcher; } private Dispatcher _dispatcher; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Windows; using System.Threading; using MS.Internal.WindowsBase; // FriendAccessAllowed namespace System.Windows.Threading { ////// A DispatcherObject is an object associated with a /// ///. A DispatcherObject instance should /// only be access by the dispatcher's thread. /// /// Subclasses of public abstract class DispatcherObject { ///should enforce thread /// safety by calling on all their public /// methods to ensure the calling thread is the appropriate thread. /// /// DispatcherObject cannot be independently instantiated; that is, /// all constructors are protected. /// /// Returns the [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] public Dispatcher Dispatcher { get { // This property is free-threaded. return _dispatcher; } } // This method allows certain derived classes to break the dispatcher affinity // of our objects. [FriendAccessAllowed] // Built into Base, also used by Framework. internal void DetachFromDispatcher() { _dispatcher = null; } ///that this /// is associated with. /// /// Checks that the calling thread has access to this object. /// ////// Only the dispatcher thread may access DispatcherObjects. /// /// This method is public so that any thread can probe to /// see if it has access to the DispatcherObject. /// ////// True if the calling thread has access to this object. /// [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public bool CheckAccess() { // This method is free-threaded. bool accessAllowed = true; Dispatcher dispatcher = _dispatcher; // Note: a DispatcherObject that is not associated with a // dispatcher is considered to be free-threaded. if(dispatcher != null) { accessAllowed = dispatcher.CheckAccess(); } return accessAllowed; } ////// Verifies that the calling thread has access to this object. /// ////// Only the dispatcher thread may access DispatcherObjects. /// /// This method is public so that derived classes can probe to /// see if the calling thread has access to itself. /// [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public void VerifyAccess() { // This method is free-threaded. Dispatcher dispatcher = _dispatcher; // Note: a DispatcherObject that is not associated with a // dispatcher is considered to be free-threaded. if(dispatcher != null) { dispatcher.VerifyAccess(); } } ////// Instantiate this object associated with the current Dispatcher. /// protected DispatcherObject() { _dispatcher = Dispatcher.CurrentDispatcher; } private Dispatcher _dispatcher; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KnownBoxes.cs
- HandleCollector.cs
- SecurityResources.cs
- SelectedDatesCollection.cs
- StringSorter.cs
- SqlParameter.cs
- GraphicsPathIterator.cs
- ClientConfigurationHost.cs
- Win32Native.cs
- ProcessManager.cs
- Size.cs
- ContainerAction.cs
- DefaultCompensation.cs
- HtmlContainerControl.cs
- TypefaceMap.cs
- SoapSchemaExporter.cs
- ToolStripSystemRenderer.cs
- CommandManager.cs
- QueryOptionExpression.cs
- OverflowException.cs
- ToolStripRendererSwitcher.cs
- RootBrowserWindowProxy.cs
- SystemWebCachingSectionGroup.cs
- OpenFileDialog.cs
- RangeValidator.cs
- ObjectSecurity.cs
- FormatStringEditor.cs
- ToolStripPanel.cs
- TextEditorTables.cs
- _SSPISessionCache.cs
- SemanticResolver.cs
- UriTemplateLiteralPathSegment.cs
- TextEffect.cs
- Timer.cs
- OdbcRowUpdatingEvent.cs
- HttpPostedFile.cs
- Dynamic.cs
- OleAutBinder.cs
- TargetConverter.cs
- Pen.cs
- SerTrace.cs
- PreviousTrackingServiceAttribute.cs
- ContainerUtilities.cs
- filewebrequest.cs
- BoundField.cs
- PagerSettings.cs
- HatchBrush.cs
- TypeHelpers.cs
- EntityDataSourceContextCreatedEventArgs.cs
- Matrix3DConverter.cs
- ContainerControl.cs
- DataGridLinkButton.cs
- StylusDevice.cs
- MethodRental.cs
- DateTimeOffset.cs
- VisualBrush.cs
- SHA256Managed.cs
- LinkClickEvent.cs
- EntityDataSourceWrapper.cs
- SmiRequestExecutor.cs
- Roles.cs
- HyperlinkAutomationPeer.cs
- MissingMemberException.cs
- ConstantCheck.cs
- EntityCommandDefinition.cs
- MiniAssembly.cs
- RefreshPropertiesAttribute.cs
- ControlTemplate.cs
- State.cs
- Renderer.cs
- PerformanceCounterPermissionEntry.cs
- MailDefinition.cs
- TimeManager.cs
- ConstraintEnumerator.cs
- HostingEnvironmentException.cs
- WaitHandleCannotBeOpenedException.cs
- Point.cs
- CodeNamespaceImport.cs
- XmlMemberMapping.cs
- MultiAsyncResult.cs
- AdditionalEntityFunctions.cs
- CodeGen.cs
- XhtmlTextWriter.cs
- WebRequestModuleElement.cs
- CacheVirtualItemsEvent.cs
- ColumnReorderedEventArgs.cs
- StringKeyFrameCollection.cs
- DbParameterCollectionHelper.cs
- ThreadSafeList.cs
- BackEase.cs
- ViewStateModeByIdAttribute.cs
- TabletDeviceInfo.cs
- Debug.cs
- CounterNameConverter.cs
- DataRowCollection.cs
- mda.cs
- VideoDrawing.cs
- ViewCellRelation.cs
- CodeLabeledStatement.cs
- ExtensionSimplifierMarkupObject.cs