Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PrintDocument.cs
- Visual3DCollection.cs
- PerformanceCountersBase.cs
- FlowLayout.cs
- BitmapEffectGroup.cs
- PartialCachingControl.cs
- TranslateTransform.cs
- SuppressMergeCheckAttribute.cs
- ProviderUtil.cs
- CodeIdentifiers.cs
- DocumentStream.cs
- WebSysDescriptionAttribute.cs
- AdornerDecorator.cs
- SettingsPropertyNotFoundException.cs
- DesignerTextWriter.cs
- FilterableAttribute.cs
- QueryCoreOp.cs
- TextTreeText.cs
- XmlTextWriter.cs
- TypeSystem.cs
- OleDbParameter.cs
- OpacityConverter.cs
- ParameterCollection.cs
- ListViewTableCell.cs
- ConnectionConsumerAttribute.cs
- FormClosedEvent.cs
- ObjectParameterCollection.cs
- NonParentingControl.cs
- DataSourceConverter.cs
- WebServiceAttribute.cs
- NativeMethods.cs
- Debug.cs
- QilSortKey.cs
- Font.cs
- XmlCountingReader.cs
- xmlfixedPageInfo.cs
- OrderedDictionary.cs
- WorkflowServiceBehavior.cs
- SamlAudienceRestrictionCondition.cs
- ProtocolElementCollection.cs
- ToolStripDropDown.cs
- ListViewContainer.cs
- QueryConverter.cs
- ListParagraph.cs
- QuaternionValueSerializer.cs
- DbConnectionPoolGroup.cs
- XmlReflectionImporter.cs
- WorkItem.cs
- XamlClipboardData.cs
- WebPartDescription.cs
- FormView.cs
- DynamicDataExtensions.cs
- GradientStop.cs
- BindingExpression.cs
- PagedControl.cs
- Module.cs
- DelegateBodyWriter.cs
- BinHexEncoder.cs
- SQlBooleanStorage.cs
- Object.cs
- ControlPaint.cs
- DecoderFallbackWithFailureFlag.cs
- compensatingcollection.cs
- SafeEventHandle.cs
- XmlSignatureProperties.cs
- CancellationTokenRegistration.cs
- WsdlBuildProvider.cs
- _DigestClient.cs
- PolicyManager.cs
- AssemblySettingAttributes.cs
- CalendarButton.cs
- ControlParameter.cs
- ViewPort3D.cs
- PeerSecurityManager.cs
- ScrollChrome.cs
- LinqExpressionNormalizer.cs
- MaskedTextBoxDesignerActionList.cs
- ValueTable.cs
- TimelineCollection.cs
- UserControlFileEditor.cs
- DependencyObject.cs
- PeerNameRecordCollection.cs
- IntMinMaxAggregationOperator.cs
- FlowDocumentPaginator.cs
- DataGridViewRowStateChangedEventArgs.cs
- DataService.cs
- DataGridState.cs
- OSFeature.cs
- ClientData.cs
- AssemblyUtil.cs
- XmlHelper.cs
- InternalDuplexChannelFactory.cs
- ColumnWidthChangingEvent.cs
- RemotingHelper.cs
- keycontainerpermission.cs
- SystemBrushes.cs
- RegexNode.cs
- DataGridRow.cs
- ConnectionPoolManager.cs
- cookie.cs