Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Log / System / IO / Log / FileRecordSequenceCompletedAsyncResult.cs / 1305376 / FileRecordSequenceCompletedAsyncResult.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IO.Log { using System; using System.Diagnostics; using System.Runtime; using System.Threading; enum Work { Append, Flush, ReserveAndAppend, WriteRestartArea } sealed class FileRecordSequenceCompletedAsyncResult : IAsyncResult { SequenceNumber result; object userState; AsyncCallback callback; bool endCalled; Work work; object syncRoot; ManualResetEvent waitHandle; public FileRecordSequenceCompletedAsyncResult( SequenceNumber result, AsyncCallback callback, object userState, Work work) { this.result = result; this.callback = callback; this.userState = userState; this.work = work; this.syncRoot = new object(); if (this.callback != null) { try { this.callback(this); } #pragma warning suppress 56500 // This is a callback exception catch(Exception e) { if (Fx.IsFatal(e)) throw; throw DiagnosticUtility.ExceptionUtility.ThrowHelperCallback(e); } } } public Object AsyncState { get { return this.userState; } } public WaitHandle AsyncWaitHandle { get { lock(this.syncRoot) { // We won't ever close it (it must be GC'd instead), but try // not to be too excessive in allocations. // if (this.waitHandle == null) this.waitHandle = new ManualResetEvent(true); } return this.waitHandle; } } public bool CompletedSynchronously { get { return true; } } public Work CompletedWork { get { return this.work; } } public bool IsCompleted { get { return true; } } internal SequenceNumber End() { if (this.endCalled) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(Error.DuplicateEnd()); } this.endCalled = true; return this.result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IO.Log { using System; using System.Diagnostics; using System.Runtime; using System.Threading; enum Work { Append, Flush, ReserveAndAppend, WriteRestartArea } sealed class FileRecordSequenceCompletedAsyncResult : IAsyncResult { SequenceNumber result; object userState; AsyncCallback callback; bool endCalled; Work work; object syncRoot; ManualResetEvent waitHandle; public FileRecordSequenceCompletedAsyncResult( SequenceNumber result, AsyncCallback callback, object userState, Work work) { this.result = result; this.callback = callback; this.userState = userState; this.work = work; this.syncRoot = new object(); if (this.callback != null) { try { this.callback(this); } #pragma warning suppress 56500 // This is a callback exception catch(Exception e) { if (Fx.IsFatal(e)) throw; throw DiagnosticUtility.ExceptionUtility.ThrowHelperCallback(e); } } } public Object AsyncState { get { return this.userState; } } public WaitHandle AsyncWaitHandle { get { lock(this.syncRoot) { // We won't ever close it (it must be GC'd instead), but try // not to be too excessive in allocations. // if (this.waitHandle == null) this.waitHandle = new ManualResetEvent(true); } return this.waitHandle; } } public bool CompletedSynchronously { get { return true; } } public Work CompletedWork { get { return this.work; } } public bool IsCompleted { get { return true; } } internal SequenceNumber End() { if (this.endCalled) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(Error.DuplicateEnd()); } this.endCalled = true; return this.result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SByteConverter.cs
- SmiSettersStream.cs
- XsltLibrary.cs
- FontStyles.cs
- Paragraph.cs
- RelOps.cs
- TrustLevel.cs
- CommonXSendMessage.cs
- sapiproxy.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- XmlHierarchicalEnumerable.cs
- WebScriptEndpointElement.cs
- XmlDataSource.cs
- X509Extension.cs
- RuleRef.cs
- WebPartDeleteVerb.cs
- BadImageFormatException.cs
- PropertyRecord.cs
- InvalidWMPVersionException.cs
- CaseStatementProjectedSlot.cs
- PackageStore.cs
- HtmlElementEventArgs.cs
- AutoCompleteStringCollection.cs
- XmlSerializationWriter.cs
- WorkflowDebuggerSteppingAttribute.cs
- AspCompat.cs
- XpsS0ValidatingLoader.cs
- LineBreakRecord.cs
- ListView.cs
- IdentifierService.cs
- PlanCompiler.cs
- Size3DConverter.cs
- SemanticBasicElement.cs
- PeerInvitationResponse.cs
- TableLayoutSettingsTypeConverter.cs
- ProcessHost.cs
- Module.cs
- ReversePositionQuery.cs
- SetterBase.cs
- SafeFileMappingHandle.cs
- HuffCodec.cs
- ResourcesBuildProvider.cs
- SqlStatistics.cs
- FeatureAttribute.cs
- HandleRef.cs
- ProcessHostFactoryHelper.cs
- BCryptSafeHandles.cs
- TypeForwardedToAttribute.cs
- UpdateException.cs
- FloaterBaseParaClient.cs
- TimeSpanSecondsConverter.cs
- DataObjectFieldAttribute.cs
- SqlNodeAnnotation.cs
- LinkedResourceCollection.cs
- DashStyle.cs
- BrowserTree.cs
- DataControlFieldCollection.cs
- SecurityTokenProvider.cs
- RemotingAttributes.cs
- TableSectionStyle.cs
- DiscreteKeyFrames.cs
- SystemEvents.cs
- XPathParser.cs
- SelectionProcessor.cs
- EFAssociationProvider.cs
- ConfigurationManagerInternalFactory.cs
- FontStretchConverter.cs
- BaseTemplatedMobileComponentEditor.cs
- PageStatePersister.cs
- XmlMessageFormatter.cs
- NullableLongAverageAggregationOperator.cs
- SchemaNamespaceManager.cs
- SimpleMailWebEventProvider.cs
- RequestCachingSection.cs
- XPathItem.cs
- SchemaEntity.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- DefaultProfileManager.cs
- InfoCardSymmetricCrypto.cs
- XmlWriter.cs
- BorderGapMaskConverter.cs
- FieldMetadata.cs
- GeometryDrawing.cs
- OleDbConnectionInternal.cs
- XmlNavigatorStack.cs
- HtmlContainerControl.cs
- prefixendpointaddressmessagefilter.cs
- Accessible.cs
- DurationConverter.cs
- ProfilePropertySettings.cs
- TreeBuilderBamlTranslator.cs
- Token.cs
- NameValueSectionHandler.cs
- SolidColorBrush.cs
- URLString.cs
- SmiSettersStream.cs
- ByteStack.cs
- ImageListDesigner.cs
- FileClassifier.cs
- MethodBuilder.cs