Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / ManagedLibraries / Remoting / Channels / CORE / BasicAsyncResult.cs / 1305376 / BasicAsyncResult.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** File: BasicAsyncResult.cs ** ** Purpose: Base class for async result implementations. ** ** Date: Oct 21, 2001 ** ===========================================================*/ using System; using System.Threading; namespace System.Runtime.Remoting.Channels { internal class BasicAsyncResult : IAsyncResult { private AsyncCallback _asyncCallback; private Object _asyncState; private Object _returnValue; private Exception _exception; private bool _bIsComplete; private ManualResetEvent _manualResetEvent; internal BasicAsyncResult(AsyncCallback callback, Object state) { _asyncCallback = callback; _asyncState = state; } // BasicAsyncResult public Object AsyncState { get { return _asyncState; } } // AsyncState public WaitHandle AsyncWaitHandle { get { bool bSavedIsComplete = _bIsComplete; if (_manualResetEvent == null) { lock (this) { if (_manualResetEvent == null) { _manualResetEvent = new ManualResetEvent(bSavedIsComplete); } } } if (!bSavedIsComplete && _bIsComplete) _manualResetEvent.Set(); return (WaitHandle)_manualResetEvent; } } // AsyncWaitHandle public bool CompletedSynchronously { get { return false; } } // CompletedSynchronously public bool IsCompleted { get { return _bIsComplete; } } // IsCompleted internal Exception Exception { get { return _exception; } } internal void SetComplete(Object returnValue, Exception exception) { _returnValue = returnValue; _exception = exception; CleanupOnComplete(); _bIsComplete = true; try { if (_manualResetEvent != null) _manualResetEvent.Set(); } catch (Exception e) { if (_exception == null) _exception = e; } // invoke the callback if (_asyncCallback != null) _asyncCallback(this); } // SetComplete internal virtual void CleanupOnComplete() { } } // BasicAsyncResult } // namespace System.Runtime.Remoting.Channels // 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
- BitmapCodecInfo.cs
- TextEditorCopyPaste.cs
- StorageFunctionMapping.cs
- EnterpriseServicesHelper.cs
- EntityDataSourceSelectedEventArgs.cs
- PeerCredentialElement.cs
- TargetInvocationException.cs
- Object.cs
- TemplateXamlParser.cs
- DataBoundControl.cs
- XmlMtomReader.cs
- RewritingPass.cs
- SharedConnectionWorkflowTransactionService.cs
- ReflectPropertyDescriptor.cs
- DrawingGroupDrawingContext.cs
- MdiWindowListItemConverter.cs
- ViewEvent.cs
- ServiceCredentialsSecurityTokenManager.cs
- RepeaterDataBoundAdapter.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- TransactionBridgeSection.cs
- Stroke2.cs
- Oid.cs
- XmlSortKeyAccumulator.cs
- DrawingContext.cs
- ExpandedWrapper.cs
- CodeExpressionStatement.cs
- MinimizableAttributeTypeConverter.cs
- SafeNativeMethods.cs
- IpcServerChannel.cs
- Int32CAMarshaler.cs
- WmlLabelAdapter.cs
- ColorAnimationBase.cs
- DirectoryNotFoundException.cs
- Context.cs
- ToolStripManager.cs
- XsdDuration.cs
- QilXmlWriter.cs
- ReflectionPermission.cs
- SectionUpdates.cs
- XamlGridLengthSerializer.cs
- FormattedTextSymbols.cs
- InternalRelationshipCollection.cs
- SchemaType.cs
- LocatorPartList.cs
- DocumentApplication.cs
- DefaultEventAttribute.cs
- FileDialogCustomPlaces.cs
- OptimalTextSource.cs
- ViewStateException.cs
- X509ServiceCertificateAuthentication.cs
- PLINQETWProvider.cs
- ZipIOCentralDirectoryFileHeader.cs
- QilList.cs
- FocusChangedEventArgs.cs
- ObjectQueryState.cs
- SmiGettersStream.cs
- MailMessage.cs
- AutoFocusStyle.xaml.cs
- ReadOnlyActivityGlyph.cs
- ReadOnlyObservableCollection.cs
- Crc32.cs
- FeatureSupport.cs
- WindowAutomationPeer.cs
- DynamicPropertyReader.cs
- PointKeyFrameCollection.cs
- SelectiveScrollingGrid.cs
- DisplayMemberTemplateSelector.cs
- TemplateBamlTreeBuilder.cs
- TimeSpanConverter.cs
- ValueCollectionParameterReader.cs
- TemplateNameScope.cs
- BaseCollection.cs
- MessageDecoder.cs
- XmlSchemaAnnotation.cs
- XmlAnyElementAttribute.cs
- TokenCreationParameter.cs
- DiscoveryClientOutputChannel.cs
- PTManager.cs
- JapaneseLunisolarCalendar.cs
- MetadataException.cs
- RelatedView.cs
- JournalEntryListConverter.cs
- Decorator.cs
- TypeToArgumentTypeConverter.cs
- ExeContext.cs
- LinqDataSourceDisposeEventArgs.cs
- PathGradientBrush.cs
- ControlCodeDomSerializer.cs
- AsyncCompletedEventArgs.cs
- BlurBitmapEffect.cs
- ServiceTimeoutsBehavior.cs
- EncryptedKey.cs
- brushes.cs
- MetadataArtifactLoaderCompositeResource.cs
- CheckedListBox.cs
- Substitution.cs
- WebPartZone.cs
- WithParamAction.cs
- MultipartIdentifier.cs