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
- ContentType.cs
- DateTimeSerializationSection.cs
- TemplateBamlRecordReader.cs
- sqlmetadatafactory.cs
- ClientTarget.cs
- Button.cs
- NegotiateStream.cs
- HtmlEmptyTagControlBuilder.cs
- NavigationWindow.cs
- ExeConfigurationFileMap.cs
- PersonalizableAttribute.cs
- PropertyCondition.cs
- TypeSemantics.cs
- ArithmeticException.cs
- CodeAttributeArgument.cs
- RelationshipEndMember.cs
- IndexingContentUnit.cs
- Bits.cs
- EntityCommandCompilationException.cs
- MetadataItemEmitter.cs
- XPathDocumentBuilder.cs
- EditorPartChrome.cs
- RangeExpression.cs
- FileDialog.cs
- SqlRewriteScalarSubqueries.cs
- TypefaceCollection.cs
- SqlMethodAttribute.cs
- KeyInfo.cs
- ResourceType.cs
- ListCollectionView.cs
- MemoryFailPoint.cs
- TimeSpanConverter.cs
- RenderOptions.cs
- UnitySerializationHolder.cs
- WmpBitmapEncoder.cs
- DataGridViewLinkColumn.cs
- DataErrorValidationRule.cs
- MemberPath.cs
- XmlConverter.cs
- ChangeToolStripParentVerb.cs
- CompiledRegexRunnerFactory.cs
- XmlRawWriterWrapper.cs
- DoWhileDesigner.xaml.cs
- Filter.cs
- ExplicitDiscriminatorMap.cs
- IconConverter.cs
- EditorZone.cs
- TemplateLookupAction.cs
- AppDomainUnloadedException.cs
- RenderTargetBitmap.cs
- HttpHostedTransportConfiguration.cs
- ReflectionUtil.cs
- TreeViewImageKeyConverter.cs
- Geometry3D.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- BackgroundWorker.cs
- Visual3D.cs
- safex509handles.cs
- XmlTextEncoder.cs
- TableItemPattern.cs
- QueryCacheEntry.cs
- ComponentEditorForm.cs
- ExceptionHandler.cs
- ObservableDictionary.cs
- Control.cs
- Dynamic.cs
- ConfigXmlSignificantWhitespace.cs
- AssemblyHash.cs
- Pens.cs
- NativeMethods.cs
- ToolStripCollectionEditor.cs
- XamlRtfConverter.cs
- EventLogPermissionEntry.cs
- DebuggerAttributes.cs
- ZipIOModeEnforcingStream.cs
- TemplateInstanceAttribute.cs
- TransformCollection.cs
- SqlInternalConnectionTds.cs
- HeaderPanel.cs
- XmlNodeReader.cs
- XXXOnTypeBuilderInstantiation.cs
- StructuredTypeEmitter.cs
- SecurityException.cs
- ImageMapEventArgs.cs
- HttpHandlerActionCollection.cs
- TypeUtils.cs
- Converter.cs
- ProviderConnectionPoint.cs
- GenericAuthenticationEventArgs.cs
- UnSafeCharBuffer.cs
- Serializer.cs
- _BufferOffsetSize.cs
- SQLGuid.cs
- EventOpcode.cs
- WeakReference.cs
- PrintDocument.cs
- KeyProperty.cs
- SupportingTokenListenerFactory.cs
- Button.cs
- ToolStripDesignerAvailabilityAttribute.cs