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
- SystemFonts.cs
- MarginsConverter.cs
- XmlSchemaInfo.cs
- CodeAttributeDeclaration.cs
- CookieProtection.cs
- NotificationContext.cs
- InstalledFontCollection.cs
- SeekStoryboard.cs
- OletxCommittableTransaction.cs
- XmlParserContext.cs
- Fonts.cs
- Variable.cs
- DesignerDataSchemaClass.cs
- WebException.cs
- HyperLinkStyle.cs
- WCFModelStrings.Designer.cs
- TargetControlTypeAttribute.cs
- BooleanFacetDescriptionElement.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- InputLangChangeEvent.cs
- FrameworkElement.cs
- Matrix3D.cs
- ClickablePoint.cs
- HtmlTableCell.cs
- Renderer.cs
- Animatable.cs
- BigInt.cs
- InfoCardPolicy.cs
- HttpFileCollectionBase.cs
- ListControl.cs
- PostBackOptions.cs
- Native.cs
- ReliableSessionBindingElementImporter.cs
- SQLBytesStorage.cs
- FormViewPageEventArgs.cs
- SourceItem.cs
- DefinitionBase.cs
- EtwProvider.cs
- CorrelationTokenInvalidatedHandler.cs
- Command.cs
- MissingMemberException.cs
- ContextMenuStripGroup.cs
- mediapermission.cs
- SharedMemory.cs
- TheQuery.cs
- StartUpEventArgs.cs
- CriticalFinalizerObject.cs
- SoapExtensionReflector.cs
- InkSerializer.cs
- EntityViewGenerationAttribute.cs
- ScriptingAuthenticationServiceSection.cs
- MsmqHostedTransportConfiguration.cs
- DataGridViewSelectedRowCollection.cs
- StickyNoteContentControl.cs
- OracleInternalConnection.cs
- HyperLinkColumn.cs
- SymLanguageType.cs
- ReverseInheritProperty.cs
- ScrollBarRenderer.cs
- MSG.cs
- XamlContextStack.cs
- Utils.cs
- SQLDateTime.cs
- RuntimeConfig.cs
- PageCatalogPart.cs
- BaseDataBoundControl.cs
- InternalBufferOverflowException.cs
- ProviderCommandInfoUtils.cs
- TCEAdapterGenerator.cs
- EntityCollectionChangedParams.cs
- ExtractorMetadata.cs
- MetaModel.cs
- XmlExceptionHelper.cs
- ResourceManager.cs
- ViewCellRelation.cs
- PageWrapper.cs
- StrokeNode.cs
- SelectedDatesCollection.cs
- OverlappedAsyncResult.cs
- NamespaceCollection.cs
- DrawingBrush.cs
- CharEntityEncoderFallback.cs
- TextDecorations.cs
- KeyPullup.cs
- RtfToXamlLexer.cs
- XmlnsDictionary.cs
- SqlCommandBuilder.cs
- UniqueIdentifierService.cs
- cryptoapiTransform.cs
- ConfigurationLoaderException.cs
- TypeLoadException.cs
- WCFBuildProvider.cs
- XPathNodeInfoAtom.cs
- EntityModelSchemaGenerator.cs
- CompilerParameters.cs
- TrustManagerPromptUI.cs
- DependencyPropertyConverter.cs
- DispatcherHookEventArgs.cs
- TabControlAutomationPeer.cs
- DataSourceHelper.cs