Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / Mail / MultiAsyncResult.cs / 1 / MultiAsyncResult.cs
namespace System.Net.Mime
{
using System;
internal class MultiAsyncResult : LazyAsyncResult
{
int outstanding;
object context;
internal MultiAsyncResult(object context, AsyncCallback callback, object state) : base(context,state,callback)
{
this.context = context;
}
internal object Context
{
get
{
return this.context;
}
}
internal void Enter()
{
Increment();
}
internal void Leave()
{
Decrement();
}
internal void Leave(object result)
{
this.Result = result;
Decrement();
}
void Decrement()
{
if (System.Threading.Interlocked.Decrement(ref this.outstanding) == -1)
{
base.InvokeCallback(Result);
}
}
void Increment()
{
System.Threading.Interlocked.Increment(ref this.outstanding);
}
internal void CompleteSequence()
{
Decrement();
}
internal static object End(IAsyncResult result)
{
MultiAsyncResult thisPtr = (MultiAsyncResult)result;
thisPtr.InternalWaitForCompletion();
return thisPtr.Result;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
namespace System.Net.Mime
{
using System;
internal class MultiAsyncResult : LazyAsyncResult
{
int outstanding;
object context;
internal MultiAsyncResult(object context, AsyncCallback callback, object state) : base(context,state,callback)
{
this.context = context;
}
internal object Context
{
get
{
return this.context;
}
}
internal void Enter()
{
Increment();
}
internal void Leave()
{
Decrement();
}
internal void Leave(object result)
{
this.Result = result;
Decrement();
}
void Decrement()
{
if (System.Threading.Interlocked.Decrement(ref this.outstanding) == -1)
{
base.InvokeCallback(Result);
}
}
void Increment()
{
System.Threading.Interlocked.Increment(ref this.outstanding);
}
internal void CompleteSequence()
{
Decrement();
}
internal static object End(IAsyncResult result)
{
MultiAsyncResult thisPtr = (MultiAsyncResult)result;
thisPtr.InternalWaitForCompletion();
return thisPtr.Result;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebControlsSection.cs
- ListMarkerLine.cs
- CodeTypeParameterCollection.cs
- PreservationFileReader.cs
- SoapReflectionImporter.cs
- BitmapVisualManager.cs
- ProxyAttribute.cs
- StorageFunctionMapping.cs
- ClipboardData.cs
- UInt16.cs
- DesignerActionVerbList.cs
- Ipv6Element.cs
- SimpleTypeResolver.cs
- ToolStripPanelCell.cs
- DesignTimeTemplateParser.cs
- LZCodec.cs
- Header.cs
- _AutoWebProxyScriptWrapper.cs
- ThrowHelper.cs
- HijriCalendar.cs
- TypeCollectionPropertyEditor.cs
- CallSiteHelpers.cs
- StringUtil.cs
- WebResponse.cs
- StylusDownEventArgs.cs
- SecurityStateEncoder.cs
- CreateUserWizard.cs
- CodeEventReferenceExpression.cs
- IntegerValidatorAttribute.cs
- MulticastDelegate.cs
- QuaternionAnimation.cs
- CodeObjectCreateExpression.cs
- validation.cs
- MatrixStack.cs
- BackEase.cs
- ItemAutomationPeer.cs
- NumericExpr.cs
- RayMeshGeometry3DHitTestResult.cs
- TextLineResult.cs
- RegisteredExpandoAttribute.cs
- Window.cs
- DbMetaDataColumnNames.cs
- StreamingContext.cs
- RequestNavigateEventArgs.cs
- ListViewItemMouseHoverEvent.cs
- WebServiceParameterData.cs
- EventLogEntry.cs
- DataPagerFieldCollection.cs
- EntitySqlQueryBuilder.cs
- DoubleLink.cs
- StateDesigner.cs
- TextBreakpoint.cs
- DataColumnChangeEvent.cs
- NativeRecognizer.cs
- UserControlParser.cs
- CodeAttributeArgumentCollection.cs
- NamespaceCollection.cs
- CapabilitiesUse.cs
- SqlColumnizer.cs
- EmptyTextWriter.cs
- NameValuePermission.cs
- DataGridViewDataConnection.cs
- StringBuilder.cs
- GridViewRow.cs
- CompilationUnit.cs
- NCryptSafeHandles.cs
- XmlBindingWorker.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- DbMetaDataColumnNames.cs
- Helper.cs
- DSASignatureFormatter.cs
- StorageMappingItemLoader.cs
- ErrorEventArgs.cs
- ConstantCheck.cs
- DataObjectFieldAttribute.cs
- FunctionMappingTranslator.cs
- DispatchProxy.cs
- FormatConvertedBitmap.cs
- TraceUtility.cs
- SspiSecurityToken.cs
- Material.cs
- SafeViewOfFileHandle.cs
- StringSource.cs
- ImageIndexEditor.cs
- PeerApplicationLaunchInfo.cs
- RoleGroupCollection.cs
- MinimizableAttributeTypeConverter.cs
- PolicyLevel.cs
- ActivityBuilder.cs
- ItemCollection.cs
- SystemIPGlobalProperties.cs
- TextChange.cs
- PointLightBase.cs
- EventLogPermissionHolder.cs
- ModuleBuilderData.cs
- DataColumnPropertyDescriptor.cs
- PeerObject.cs
- SoapSchemaImporter.cs
- Funcletizer.cs
- LogicalCallContext.cs