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
- IsolatedStorageException.cs
- SimpleMailWebEventProvider.cs
- Matrix3DStack.cs
- UdpSocket.cs
- BlockExpression.cs
- MorphHelper.cs
- XmlWriterTraceListener.cs
- HtmlTernaryTree.cs
- QueryServiceConfigHandle.cs
- IconEditor.cs
- QuerySubExprEliminator.cs
- WebBrowserBase.cs
- SystemWebCachingSectionGroup.cs
- XmlSerializationReader.cs
- ReceiveSecurityHeaderEntry.cs
- Propagator.JoinPropagator.cs
- TextBoxDesigner.cs
- PageCache.cs
- XmlSerializationWriter.cs
- DescendentsWalkerBase.cs
- SoapFault.cs
- GPPOINTF.cs
- WebEventCodes.cs
- ReturnEventArgs.cs
- HttpConfigurationSystem.cs
- ConfigurationLockCollection.cs
- ContentOperations.cs
- SmiEventStream.cs
- DPCustomTypeDescriptor.cs
- MasterPageCodeDomTreeGenerator.cs
- COAUTHIDENTITY.cs
- SchemaConstraints.cs
- ChildrenQuery.cs
- WebBrowser.cs
- ImagingCache.cs
- InputProcessorProfilesLoader.cs
- ConfigXmlCDataSection.cs
- ScriptingWebServicesSectionGroup.cs
- NavigationEventArgs.cs
- ListViewDataItem.cs
- TextBox.cs
- LocalizationParserHooks.cs
- XsdDuration.cs
- EntityContainer.cs
- SqlConnection.cs
- CngProvider.cs
- LocatorPartList.cs
- DelegatingTypeDescriptionProvider.cs
- ValueOfAction.cs
- CancellationScope.cs
- TdsValueSetter.cs
- XmlMtomWriter.cs
- ChannelPoolSettings.cs
- RoleGroupCollection.cs
- Win32MouseDevice.cs
- QuotedStringFormatReader.cs
- WorkerRequest.cs
- XmlBufferReader.cs
- StylusPointPropertyId.cs
- SharedDp.cs
- ConnectorSelectionGlyph.cs
- WsdlInspector.cs
- ObsoleteAttribute.cs
- MeasurementDCInfo.cs
- ScrollBar.cs
- TargetParameterCountException.cs
- DataGridColumnEventArgs.cs
- StorageBasedPackageProperties.cs
- OperatorExpressions.cs
- AutomationIdentifierGuids.cs
- XamlPoint3DCollectionSerializer.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ADRole.cs
- X500Name.cs
- Missing.cs
- RenameRuleObjectDialog.Designer.cs
- XmlNavigatorStack.cs
- _FixedSizeReader.cs
- OdbcDataAdapter.cs
- FolderBrowserDialog.cs
- ServerIdentity.cs
- _OSSOCK.cs
- KeyTime.cs
- ValuePatternIdentifiers.cs
- VersionUtil.cs
- OwnerDrawPropertyBag.cs
- GridViewEditEventArgs.cs
- SafeThreadHandle.cs
- RowType.cs
- EditingCoordinator.cs
- _ListenerAsyncResult.cs
- BitmapPalette.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ISAPIApplicationHost.cs
- OAVariantLib.cs
- StrongNameUtility.cs
- DesignerValidationSummaryAdapter.cs
- ListViewUpdatedEventArgs.cs
- ObjectHelper.cs
- MessageSecurityOverMsmqElement.cs