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
- WorkflowTerminatedException.cs
- OdbcReferenceCollection.cs
- ModelMemberCollection.cs
- AdCreatedEventArgs.cs
- ScaleTransform.cs
- DeploymentExceptionMapper.cs
- ConfigurationStrings.cs
- BinaryObjectWriter.cs
- XmlWhitespace.cs
- WizardSideBarListControlItem.cs
- RangeValueProviderWrapper.cs
- StateItem.cs
- While.cs
- SignatureDescription.cs
- ResourceReferenceKeyNotFoundException.cs
- MenuDesigner.cs
- XD.cs
- WebServiceErrorEvent.cs
- StringTraceRecord.cs
- LinqExpressionNormalizer.cs
- AsyncOperationContext.cs
- X509CertificateCollection.cs
- LocalBuilder.cs
- SrgsDocument.cs
- LoginAutoFormat.cs
- XmlToDatasetMap.cs
- PersonalizationAdministration.cs
- LinkedDataMemberFieldEditor.cs
- FlowDocumentPaginator.cs
- ProxyWebPartConnectionCollection.cs
- CorrelationQueryBehavior.cs
- ClientBuildManager.cs
- CombinedTcpChannel.cs
- HandleCollector.cs
- BoundingRectTracker.cs
- XmlRawWriter.cs
- ServicePointManagerElement.cs
- PermissionListSet.cs
- Composition.cs
- WinInetCache.cs
- SubMenuStyleCollection.cs
- DeferrableContentConverter.cs
- XPathNodePointer.cs
- DelegateArgumentReference.cs
- HttpValueCollection.cs
- DeferrableContent.cs
- GatewayDefinition.cs
- Grid.cs
- DataGridViewColumnCollection.cs
- CellCreator.cs
- IndexedGlyphRun.cs
- Rect.cs
- PointAnimationBase.cs
- TypedRowHandler.cs
- InplaceBitmapMetadataWriter.cs
- EmbeddedMailObjectCollectionEditor.cs
- CustomError.cs
- DataServiceExpressionVisitor.cs
- DesignerCategoryAttribute.cs
- TimeSpanValidatorAttribute.cs
- DictionaryGlobals.cs
- TemplateComponentConnector.cs
- DateTimeConstantAttribute.cs
- XmlAnyElementAttributes.cs
- Splitter.cs
- EdmToObjectNamespaceMap.cs
- SchemaMerger.cs
- BaseHashHelper.cs
- ExceptQueryOperator.cs
- wgx_commands.cs
- EventMappingSettingsCollection.cs
- FileFormatException.cs
- SerialErrors.cs
- RadioButtonStandardAdapter.cs
- StreamingContext.cs
- SqlPersonalizationProvider.cs
- PeerMessageDispatcher.cs
- LogicalTreeHelper.cs
- HttpsChannelFactory.cs
- SpecialTypeDataContract.cs
- RangeBaseAutomationPeer.cs
- SafeNativeMemoryHandle.cs
- PartitionResolver.cs
- DbConnectionPoolOptions.cs
- SQLDateTime.cs
- RenameRuleObjectDialog.Designer.cs
- _StreamFramer.cs
- dataobject.cs
- IPEndPoint.cs
- OdbcConnection.cs
- AsyncOperation.cs
- MDIControlStrip.cs
- ScrollProviderWrapper.cs
- TimersDescriptionAttribute.cs
- Trigger.cs
- ServiceControllerDesigner.cs
- PartialArray.cs
- ArithmeticLiteral.cs
- RuntimeVariableList.cs
- JsonWriter.cs