Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / Windows / Threading / DispatcherFrame.cs / 1 / DispatcherFrame.cs
using System; using System.Security; namespace System.Windows.Threading { ////// Representation of Dispatcher frame. /// public class DispatcherFrame : DispatcherObject { ////// Critical: This code exists to ensure that the static variables initialized /// do not cause security violations.The reason this comes into existance is because /// of the call to RegisterWindowMessage /// TreatAsSafe:This is safe to call /// [SecurityCritical,SecurityTreatAsSafe] static DispatcherFrame() { } ////// Constructs a new instance of the DispatcherFrame class. /// public DispatcherFrame() : this(true) { } ////// Constructs a new instance of the DispatcherFrame class. /// /// /// Indicates whether or not this frame will exit when all frames /// are requested to exit. /// /// Dispatcher frames typically break down into two categories: /// 1) Long running, general purpose frames, that exit only when /// told to. These frames should exit when requested. /// 2) Short running, very specific frames that exit themselves /// when an important criteria is met. These frames may /// consider not exiting when requested in favor of waiting /// for their important criteria to be met. These frames /// should have a timeout associated with them. /// public DispatcherFrame(bool exitWhenRequested) { _exitWhenRequested = exitWhenRequested; _continue = true; } ////// Indicates that this dispatcher frame should exit. /// ////// Critical - calls a critical method - postThreadMessage. /// PublicOK - all we're doing is posting a current message to our thread. /// net effect is the dispatcher "wakes up" /// and uses the continue flag ( which may have just changed). /// public bool Continue { get { // This method is free-threaded. // First check if this frame wants to continue. bool shouldContinue = _continue; if(shouldContinue) { // This frame wants to continue, so next check if it will // respect the "exit requests" from the dispatcher. if(_exitWhenRequested) { Dispatcher dispatcher = Dispatcher; // This frame is willing to respect the "exit requests" of // the dispatcher, so check them. if(dispatcher._exitAllFrames || dispatcher._hasShutdownStarted) { shouldContinue = false; } } } return shouldContinue; } [SecurityCritical] set { // This method is free-threaded. _continue = value; // Post a message so that the message pump will wake up and // check our continue state. Dispatcher.BeginInvoke(DispatcherPriority.Send, (DispatcherOperationCallback) delegate(object unused) {return null;}, null); } } private bool _exitWhenRequested; private bool _continue; } } // 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
- SerializationInfo.cs
- ResourceContainer.cs
- StorageModelBuildProvider.cs
- GeometryValueSerializer.cs
- ManualResetEventSlim.cs
- SHA384.cs
- ImpersonationContext.cs
- SessionSymmetricTransportSecurityProtocolFactory.cs
- MatrixTransform.cs
- TransactedReceiveData.cs
- CqlIdentifiers.cs
- Baml2006Reader.cs
- WebEventTraceProvider.cs
- FileUpload.cs
- XPathPatternParser.cs
- BindingListCollectionView.cs
- SafeHandles.cs
- ResourceIDHelper.cs
- streamingZipPartStream.cs
- MissingMethodException.cs
- DockAndAnchorLayout.cs
- SendKeys.cs
- CustomCategoryAttribute.cs
- HuffModule.cs
- ProviderSettings.cs
- TrustLevel.cs
- QueryCacheEntry.cs
- Content.cs
- PropertyChangingEventArgs.cs
- StaticContext.cs
- ReadOnlyHierarchicalDataSource.cs
- JumpTask.cs
- CheckBoxStandardAdapter.cs
- Object.cs
- CommandHelper.cs
- EntityCollection.cs
- WebContext.cs
- Geometry.cs
- ProcessModuleCollection.cs
- LoopExpression.cs
- ProcessModule.cs
- HtmlShimManager.cs
- XmlQueryStaticData.cs
- StandardBindingImporter.cs
- PolyQuadraticBezierSegment.cs
- FeatureSupport.cs
- ServiceReference.cs
- SmiRequestExecutor.cs
- VirtualizingStackPanel.cs
- XslCompiledTransform.cs
- XPathConvert.cs
- ColorConvertedBitmap.cs
- Sequence.cs
- UriExt.cs
- DesignerWebPartChrome.cs
- CounterCreationDataCollection.cs
- XamlFxTrace.cs
- SplashScreen.cs
- DataColumn.cs
- Keywords.cs
- MetaDataInfo.cs
- FontUnit.cs
- CorrelationManager.cs
- HelpEvent.cs
- RectConverter.cs
- InternalConfigSettingsFactory.cs
- ColorMap.cs
- CompilationUnit.cs
- ObjectConverter.cs
- AttributeEmitter.cs
- SrgsSemanticInterpretationTag.cs
- CurrentTimeZone.cs
- DictionaryContent.cs
- CounterSetInstance.cs
- AssociationSetMetadata.cs
- EllipticalNodeOperations.cs
- TextServicesCompartmentEventSink.cs
- ParserStreamGeometryContext.cs
- CqlParserHelpers.cs
- ISAPIRuntime.cs
- ListBoxAutomationPeer.cs
- SerializationSectionGroup.cs
- SystemResources.cs
- CompressionTracing.cs
- StructuralCache.cs
- ScopeElement.cs
- HttpCacheParams.cs
- NameTable.cs
- ConfigXmlWhitespace.cs
- BasicExpandProvider.cs
- ScalarType.cs
- ClientRolePrincipal.cs
- ConstraintCollection.cs
- NameSpaceExtractor.cs
- HybridDictionary.cs
- HttpClientChannel.cs
- GeneralTransformGroup.cs
- ErasingStroke.cs
- ExitEventArgs.cs
- SQLChars.cs