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
- SerialPort.cs
- NameValueFileSectionHandler.cs
- Context.cs
- AnimatedTypeHelpers.cs
- QueueProcessor.cs
- XamlGridLengthSerializer.cs
- ImageListUtils.cs
- diagnosticsswitches.cs
- CommandField.cs
- SafeRegistryKey.cs
- TransformerConfigurationWizardBase.cs
- AffineTransform3D.cs
- MemberDomainMap.cs
- TabletDevice.cs
- ObjectListShowCommandsEventArgs.cs
- ProjectionPath.cs
- CodeNamespace.cs
- KeyGesture.cs
- DetailsViewDeletedEventArgs.cs
- PriorityRange.cs
- DropShadowEffect.cs
- TreeViewBindingsEditorForm.cs
- ReflectionPermission.cs
- DrawingVisual.cs
- ClosableStream.cs
- ToolStrip.cs
- ObjectKeyFrameCollection.cs
- TextParaLineResult.cs
- IResourceProvider.cs
- MemoryStream.cs
- AliasGenerator.cs
- WorkflowDesigner.cs
- SrgsDocument.cs
- PtsHelper.cs
- WebUtil.cs
- DiscoveryExceptionDictionary.cs
- MimeReflector.cs
- WebEventCodes.cs
- ListControl.cs
- SoapAttributeAttribute.cs
- ToggleProviderWrapper.cs
- DataObjectCopyingEventArgs.cs
- DesignOnlyAttribute.cs
- AssemblyBuilder.cs
- SqlEnums.cs
- KeyboardEventArgs.cs
- WCFBuildProvider.cs
- HttpFormatExtensions.cs
- RelationshipConstraintValidator.cs
- ActivityTypeResolver.xaml.cs
- RotateTransform3D.cs
- _BaseOverlappedAsyncResult.cs
- XmlSerializerVersionAttribute.cs
- ApplicationInfo.cs
- MailAddress.cs
- UserControl.cs
- SelectionEditingBehavior.cs
- SQLGuid.cs
- ComplusTypeValidator.cs
- WindowsFormsHost.cs
- FunctionNode.cs
- RawMouseInputReport.cs
- IgnoreDataMemberAttribute.cs
- RijndaelManagedTransform.cs
- QilXmlReader.cs
- MenuItemBinding.cs
- ChangePasswordDesigner.cs
- SHA1.cs
- DataGridRowHeaderAutomationPeer.cs
- HtmlTable.cs
- DbgCompiler.cs
- ChameleonKey.cs
- GestureRecognitionResult.cs
- PersonalizationProviderCollection.cs
- SqlConnectionHelper.cs
- ParallelLoopState.cs
- DataGridCommandEventArgs.cs
- DropDownList.cs
- OperationParameterInfoCollection.cs
- CodeDelegateInvokeExpression.cs
- _LoggingObject.cs
- XmlAttributeAttribute.cs
- DataControlCommands.cs
- ConfigurationManagerHelper.cs
- ApplicationTrust.cs
- AstTree.cs
- LowerCaseStringConverter.cs
- UInt16.cs
- ReferenceEqualityComparer.cs
- EventHandlerList.cs
- SemanticKeyElement.cs
- XmlDataLoader.cs
- HttpListenerResponse.cs
- Solver.cs
- RayHitTestParameters.cs
- OleServicesContext.cs
- _ChunkParse.cs
- SqlCaseSimplifier.cs
- WinFormsComponentEditor.cs
- StorageRoot.cs