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
- OrthographicCamera.cs
- unsafeIndexingFilterStream.cs
- WebPartDeleteVerb.cs
- MustUnderstandSoapException.cs
- CodeAccessPermission.cs
- TextTreeTextNode.cs
- messageonlyhwndwrapper.cs
- GeneralTransform.cs
- SendActivityDesigner.cs
- UserValidatedEventArgs.cs
- SchemaObjectWriter.cs
- ParamArrayAttribute.cs
- KeyEventArgs.cs
- _SSPISessionCache.cs
- EventLogEntry.cs
- PocoEntityKeyStrategy.cs
- Rule.cs
- ReturnEventArgs.cs
- TargetConverter.cs
- WindowsTokenRoleProvider.cs
- IDReferencePropertyAttribute.cs
- ActiveXSite.cs
- DataGridViewComboBoxColumn.cs
- ListViewDeletedEventArgs.cs
- SizeF.cs
- UTF7Encoding.cs
- DispatchChannelSink.cs
- SystemDropShadowChrome.cs
- ProcessManager.cs
- DictionaryManager.cs
- FillErrorEventArgs.cs
- RegexCompiler.cs
- SafeArrayRankMismatchException.cs
- WorkflowStateRollbackService.cs
- ProtectedProviderSettings.cs
- GregorianCalendarHelper.cs
- PassportIdentity.cs
- DeferredTextReference.cs
- RelatedCurrencyManager.cs
- PropertyTab.cs
- UserControl.cs
- DbConnectionPool.cs
- coordinator.cs
- MenuItem.cs
- TypeLoadException.cs
- HtmlControl.cs
- CompressedStack.cs
- DataGridRow.cs
- ContextStaticAttribute.cs
- SecurityPolicySection.cs
- PkcsMisc.cs
- FileLoadException.cs
- PluralizationService.cs
- GridViewColumnHeaderAutomationPeer.cs
- SqlDataReader.cs
- NameTable.cs
- _RequestCacheProtocol.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- FullTrustAssemblyCollection.cs
- TreeNode.cs
- Timer.cs
- XmlWrappingWriter.cs
- ObjectStateEntry.cs
- BufferAllocator.cs
- CleanUpVirtualizedItemEventArgs.cs
- WindowsTokenRoleProvider.cs
- SpellerStatusTable.cs
- WebBrowser.cs
- ActivityBuilderHelper.cs
- RuleSettingsCollection.cs
- PathGeometry.cs
- RepeaterDataBoundAdapter.cs
- ReadOnlyDictionary.cs
- IRCollection.cs
- CurrencyWrapper.cs
- Menu.cs
- BamlRecordReader.cs
- SetMemberBinder.cs
- EntityKey.cs
- SmiGettersStream.cs
- XmlSiteMapProvider.cs
- TextSpan.cs
- DefaultValueTypeConverter.cs
- VirtualDirectoryMapping.cs
- MetadataArtifactLoaderComposite.cs
- PerformanceCounterLib.cs
- SqlDataSourceCache.cs
- SortDescriptionCollection.cs
- CollectionType.cs
- ExtendedPropertyCollection.cs
- TextStore.cs
- UnsafeNativeMethods.cs
- Misc.cs
- XmlWriterSettings.cs
- BitmapSource.cs
- ConfigurationSectionCollection.cs
- MachineKeySection.cs
- ListViewSortEventArgs.cs
- DNS.cs
- WindowPattern.cs