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
- StreamGeometry.cs
- OdbcPermission.cs
- PipelineModuleStepContainer.cs
- PrivilegedConfigurationManager.cs
- CompoundFileStorageReference.cs
- ProfilePropertySettings.cs
- Pen.cs
- DocumentOrderQuery.cs
- SingleAnimationBase.cs
- DataServiceClientException.cs
- LinkedResourceCollection.cs
- SetterBaseCollection.cs
- EditingCommands.cs
- DoubleLinkListEnumerator.cs
- EditingCommands.cs
- Event.cs
- XmlSerializationReader.cs
- RoutedUICommand.cs
- FillErrorEventArgs.cs
- BamlCollectionHolder.cs
- CreateUserWizardStep.cs
- StylusPointPropertyInfoDefaults.cs
- SoapHeaderAttribute.cs
- GuidConverter.cs
- HttpRuntime.cs
- VersionedStream.cs
- TextCharacters.cs
- XmlTextReader.cs
- Propagator.Evaluator.cs
- CachedPathData.cs
- BitmapEffectGroup.cs
- XmlTextReader.cs
- XLinq.cs
- GroupBoxRenderer.cs
- ActivitySurrogateSelector.cs
- XmlKeywords.cs
- TreeNodeBindingCollection.cs
- OperationAbortedException.cs
- Domain.cs
- BaseResourcesBuildProvider.cs
- BaseCollection.cs
- TemplateInstanceAttribute.cs
- safex509handles.cs
- SoapInteropTypes.cs
- InternalSendMessage.cs
- DBProviderConfigurationHandler.cs
- DbProviderSpecificTypePropertyAttribute.cs
- GregorianCalendar.cs
- SmtpSection.cs
- BuildProviderCollection.cs
- XPathDocumentBuilder.cs
- DnsElement.cs
- ImportStoreException.cs
- Variable.cs
- BitArray.cs
- SelfIssuedTokenFactoryCredential.cs
- _ContextAwareResult.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- ProtocolElement.cs
- WebPageTraceListener.cs
- SemanticResultValue.cs
- SHA1CryptoServiceProvider.cs
- HiddenFieldPageStatePersister.cs
- ExpressionCopier.cs
- WhitespaceSignificantCollectionAttribute.cs
- DocumentOrderQuery.cs
- ObjectContextServiceProvider.cs
- Pkcs9Attribute.cs
- ListViewUpdatedEventArgs.cs
- EntityDataSourceConfigureObjectContext.cs
- EmptyStringExpandableObjectConverter.cs
- FileCodeGroup.cs
- ConfigurationPropertyAttribute.cs
- ExpressionParser.cs
- SqlGenericUtil.cs
- XmlParser.cs
- OleDbStruct.cs
- AsyncStreamReader.cs
- ArrayList.cs
- DashStyles.cs
- CriticalHandle.cs
- Decorator.cs
- ConsumerConnectionPoint.cs
- BitmapSizeOptions.cs
- Internal.cs
- PagerSettings.cs
- GridItem.cs
- LoginName.cs
- FixedDSBuilder.cs
- SchemaExporter.cs
- ReachDocumentReferenceSerializerAsync.cs
- RootBrowserWindowAutomationPeer.cs
- UIElementHelper.cs
- NegatedConstant.cs
- HttpDictionary.cs
- EncryptedType.cs
- GradientStop.cs
- XmlSchemaValidationException.cs
- StateDesigner.Layouts.cs
- ActivityBindForm.Designer.cs