Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- BindingWorker.cs
- XmlILTrace.cs
- DynamicDataManager.cs
- ControlType.cs
- ToolBarButton.cs
- RubberbandSelector.cs
- PageStatePersister.cs
- TrackPoint.cs
- UniqueIdentifierService.cs
- VerticalAlignConverter.cs
- ActivityExecutorOperation.cs
- CustomExpressionEventArgs.cs
- XamlSerializationHelper.cs
- ExpressionNormalizer.cs
- ScriptMethodAttribute.cs
- ByteStack.cs
- basecomparevalidator.cs
- TemplatedWizardStep.cs
- PolicyLevel.cs
- SchemaMerger.cs
- DataBoundLiteralControl.cs
- CachedBitmap.cs
- WebBrowser.cs
- ColumnResizeUndoUnit.cs
- TemplateLookupAction.cs
- KeyGestureConverter.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- SortedSet.cs
- WebPartHeaderCloseVerb.cs
- BinaryWriter.cs
- MarshalByRefObject.cs
- IncrementalHitTester.cs
- TableLayoutPanelCellPosition.cs
- XXXOnTypeBuilderInstantiation.cs
- Configuration.cs
- ResourceDictionaryCollection.cs
- ElementMarkupObject.cs
- StringWriter.cs
- ZoomPercentageConverter.cs
- FontInfo.cs
- ShadowGlyph.cs
- SqlClientWrapperSmiStreamChars.cs
- FlowPosition.cs
- ValidatorCollection.cs
- RegistryConfigurationProvider.cs
- OutputCacheSettingsSection.cs
- MarkupExtensionReturnTypeAttribute.cs
- RequiredFieldValidator.cs
- HtmlToClrEventProxy.cs
- ToolStripSplitStackLayout.cs
- PhotoPrintingIntent.cs
- Vector3dCollection.cs
- KeyPullup.cs
- Propagator.JoinPropagator.cs
- DependencyObjectPropertyDescriptor.cs
- CodeCatchClause.cs
- AnimationLayer.cs
- PingReply.cs
- GuidelineSet.cs
- PerformanceCounterLib.cs
- ToolboxComponentsCreatingEventArgs.cs
- CriticalFinalizerObject.cs
- SqlTriggerAttribute.cs
- SqlUtil.cs
- FileSecurity.cs
- CryptoStream.cs
- FormViewAutoFormat.cs
- DefaultDialogButtons.cs
- DeflateStream.cs
- OutArgumentConverter.cs
- SymbolMethod.cs
- MD5.cs
- FixedPageStructure.cs
- OleDbException.cs
- SupportsEventValidationAttribute.cs
- Parser.cs
- DesignerCatalogPartChrome.cs
- NeedSkipTokenVisitor.cs
- MetadataFile.cs
- TickBar.cs
- DataList.cs
- DocumentManager.cs
- Common.cs
- ProviderIncompatibleException.cs
- DPCustomTypeDescriptor.cs
- ProxyGenerationError.cs
- CodeCastExpression.cs
- HyperLink.cs
- CustomAttributeSerializer.cs
- RootBuilder.cs
- TargetPerspective.cs
- SmtpNegotiateAuthenticationModule.cs
- ResolveRequestResponseAsyncResult.cs
- SqlDataReaderSmi.cs
- SQLInt16.cs
- PtsContext.cs
- PageThemeBuildProvider.cs
- RegionIterator.cs
- AvTraceDetails.cs
- DataGridViewRowsAddedEventArgs.cs