Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- TextTreeRootNode.cs
- propertyentry.cs
- DataSvcMapFile.cs
- ColorMap.cs
- LinkLabelLinkClickedEvent.cs
- IgnoreFileBuildProvider.cs
- BooleanExpr.cs
- EnumValAlphaComparer.cs
- SessionPageStateSection.cs
- InternalsVisibleToAttribute.cs
- Polygon.cs
- VarRefManager.cs
- SignatureDescription.cs
- WindowPatternIdentifiers.cs
- FileSystemEventArgs.cs
- LineVisual.cs
- StreamInfo.cs
- MexHttpsBindingCollectionElement.cs
- EntityConnectionStringBuilderItem.cs
- ScalarType.cs
- ProxyElement.cs
- SmiEventSink_DeferedProcessing.cs
- DbException.cs
- ConnectionStringsExpressionEditor.cs
- MenuAdapter.cs
- SplitterCancelEvent.cs
- ModelPerspective.cs
- ColumnMapTranslator.cs
- WebControlAdapter.cs
- errorpatternmatcher.cs
- HandlerMappingMemo.cs
- Constraint.cs
- EmptyQuery.cs
- HtmlTextBoxAdapter.cs
- DataTableClearEvent.cs
- MetricEntry.cs
- WithStatement.cs
- RuntimeCompatibilityAttribute.cs
- BamlLocalizabilityResolver.cs
- mactripleDES.cs
- ApplicationGesture.cs
- XmlDataContract.cs
- SrgsSubset.cs
- DefaultSection.cs
- SoapAttributeAttribute.cs
- RequestResizeEvent.cs
- StringUtil.cs
- MSAAEventDispatcher.cs
- WebPartDisplayMode.cs
- UIElement3D.cs
- WebPartVerbsEventArgs.cs
- CTreeGenerator.cs
- ApplicationManager.cs
- CacheMemory.cs
- MethodSignatureGenerator.cs
- Helpers.cs
- MappingMetadataHelper.cs
- TableLayoutSettingsTypeConverter.cs
- FileLevelControlBuilderAttribute.cs
- ConversionContext.cs
- Renderer.cs
- MonthChangedEventArgs.cs
- XmlSchemaSimpleTypeList.cs
- SimpleParser.cs
- ProviderBase.cs
- Attachment.cs
- SystemIPv4InterfaceProperties.cs
- UInt64Storage.cs
- PrintPreviewDialog.cs
- FormViewDeleteEventArgs.cs
- StringComparer.cs
- LookupNode.cs
- ConstantProjectedSlot.cs
- InfoCardCryptoHelper.cs
- AppearanceEditorPart.cs
- InkCanvasInnerCanvas.cs
- ObjectStateEntryDbDataRecord.cs
- PartialCachingControl.cs
- DockPattern.cs
- ContextDataSource.cs
- TableLayoutSettingsTypeConverter.cs
- RelOps.cs
- StructuredTypeEmitter.cs
- ProbeMatchesMessage11.cs
- EntitySetBase.cs
- XmlSchemaGroupRef.cs
- SerialPinChanges.cs
- ParseHttpDate.cs
- UnionCqlBlock.cs
- XmlAttributeOverrides.cs
- Guid.cs
- DropShadowBitmapEffect.cs
- XmlDataSourceNodeDescriptor.cs
- ToolStripDropDownItemDesigner.cs
- SocketElement.cs
- ServiceChannelFactory.cs
- CalendarModeChangedEventArgs.cs
- FreezableDefaultValueFactory.cs
- Rotation3D.cs
- MdiWindowListItemConverter.cs