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
- OperandQuery.cs
- UIElementParagraph.cs
- GridViewCancelEditEventArgs.cs
- DataGridRelationshipRow.cs
- PrincipalPermission.cs
- IResourceProvider.cs
- ToolStripItemEventArgs.cs
- HtmlUtf8RawTextWriter.cs
- AuthenticatedStream.cs
- SafeRightsManagementHandle.cs
- FlowDocumentPaginator.cs
- TextStore.cs
- IndicCharClassifier.cs
- MessageQueueEnumerator.cs
- HtmlUtf8RawTextWriter.cs
- Hashtable.cs
- ServerProtocol.cs
- SafeNativeMethods.cs
- FilteredDataSetHelper.cs
- SoapHttpTransportImporter.cs
- _ChunkParse.cs
- EdmRelationshipRoleAttribute.cs
- KnownIds.cs
- CustomWebEventKey.cs
- InternalBase.cs
- EntityConnectionStringBuilder.cs
- FixedHyperLink.cs
- WindowsStreamSecurityElement.cs
- GridPattern.cs
- FontCollection.cs
- SqlCharStream.cs
- EventLogEntry.cs
- PictureBoxDesigner.cs
- DbLambda.cs
- WebPartVerb.cs
- FamilyTypeface.cs
- BindingContext.cs
- StylusTouchDevice.cs
- ScriptingScriptResourceHandlerSection.cs
- MergeExecutor.cs
- Win32Exception.cs
- NetworkInformationPermission.cs
- PointLightBase.cs
- ObjectDataSource.cs
- safex509handles.cs
- EventData.cs
- SetterBaseCollection.cs
- StringWriter.cs
- MediaTimeline.cs
- RuntimeEnvironment.cs
- VisemeEventArgs.cs
- CodeCatchClauseCollection.cs
- ErrorProvider.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Msec.cs
- SettingsAttributes.cs
- BCLDebug.cs
- GcHandle.cs
- EntityException.cs
- SHA512Managed.cs
- ToolStripLabel.cs
- GroupLabel.cs
- DockPanel.cs
- Thread.cs
- ConnectivityStatus.cs
- Assert.cs
- ApplicationActivator.cs
- BooleanSwitch.cs
- SoapExtensionTypeElementCollection.cs
- TemplateKey.cs
- ActivityInstanceReference.cs
- CompilerResults.cs
- RepeatBehavior.cs
- ViewBox.cs
- KeyInterop.cs
- WebFaultClientMessageInspector.cs
- DatagridviewDisplayedBandsData.cs
- XamlToRtfWriter.cs
- DataGrid.cs
- TreeView.cs
- RightNameExpirationInfoPair.cs
- figurelength.cs
- FileInfo.cs
- PlatformCulture.cs
- TypedReference.cs
- ServiceContractViewControl.cs
- StreamMarshaler.cs
- AlternateView.cs
- CheckBoxBaseAdapter.cs
- BufferedGraphicsManager.cs
- MaskedTextBoxDesigner.cs
- ViewSimplifier.cs
- OleServicesContext.cs
- ObjectListFieldCollection.cs
- WebCategoryAttribute.cs
- DocumentPageTextView.cs
- TextViewElement.cs
- CurrentTimeZone.cs
- Ref.cs
- FontDialog.cs