Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / AsyncInvokeOperation.cs / 1305376 / AsyncInvokeOperation.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities { using System.Xml; using System.Collections.Generic; using System.Threading; using System.Runtime; class AsyncInvokeOperation { object thisLock; public AsyncInvokeOperation(SynchronizationContext syncContext) { Fx.Assert(syncContext != null, "syncContext cannot be null"); this.SyncContext = syncContext; thisLock = new object(); } SynchronizationContext SyncContext { get; set; } bool Completed { get; set; } public void OperationStarted() { this.SyncContext.OperationStarted(); } public void OperationCompleted() { lock (thisLock) { Fx.AssertAndThrowFatal(!this.Completed, "Async operation has already been completed"); this.Completed = true; } this.SyncContext.OperationCompleted(); } public void PostOperationCompleted(SendOrPostCallback callback, object arg) { lock (thisLock) { Fx.AssertAndThrowFatal(!this.Completed, "Async operation has already been completed"); this.Completed = true; } Fx.Assert(callback != null, "callback cannot be null"); this.SyncContext.Post(callback, arg); this.SyncContext.OperationCompleted(); } } } // 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
- EmptyControlCollection.cs
- Visual3D.cs
- Walker.cs
- HashSetDebugView.cs
- MouseWheelEventArgs.cs
- MessageSecurityVersionConverter.cs
- WebConfigurationHost.cs
- OracleBoolean.cs
- FixedPageStructure.cs
- Identifier.cs
- ExpressionBindings.cs
- EventListener.cs
- ApplicationInterop.cs
- RichTextBox.cs
- LogicalExpressionEditor.cs
- PersistStreamTypeWrapper.cs
- PersonalizationProvider.cs
- ColumnMap.cs
- Link.cs
- HuffmanTree.cs
- FilterQuery.cs
- MemberProjectionIndex.cs
- BamlResourceDeserializer.cs
- TransactionContextValidator.cs
- FloatSumAggregationOperator.cs
- SoapTypeAttribute.cs
- SqlMetaData.cs
- ReadOnlyNameValueCollection.cs
- XpsS0ValidatingLoader.cs
- x509store.cs
- CultureTableRecord.cs
- ButtonRenderer.cs
- Rect3DConverter.cs
- SocketElement.cs
- SecurityBindingElementImporter.cs
- ExpanderAutomationPeer.cs
- Roles.cs
- XmlSerializableWriter.cs
- MatrixValueSerializer.cs
- _DisconnectOverlappedAsyncResult.cs
- RegistryExceptionHelper.cs
- ObjectQuery.cs
- TableCellAutomationPeer.cs
- PointF.cs
- ProfileProvider.cs
- ScriptingJsonSerializationSection.cs
- EncryptedData.cs
- LockCookie.cs
- HostingEnvironment.cs
- DefaultPrintController.cs
- ModelTreeEnumerator.cs
- UserControl.cs
- EventLogException.cs
- SelfIssuedSamlTokenFactory.cs
- FixedTextContainer.cs
- DeflateEmulationStream.cs
- InkCanvasInnerCanvas.cs
- GridViewRowCollection.cs
- DataSourceControlBuilder.cs
- CellIdBoolean.cs
- SynchronizedDispatch.cs
- XsltInput.cs
- PropertyIDSet.cs
- ThemeInfoAttribute.cs
- ProxyWebPart.cs
- HttpApplicationFactory.cs
- DeclarativeCatalogPart.cs
- ToolStripDesignerAvailabilityAttribute.cs
- BitmapEffectDrawing.cs
- SortKey.cs
- ElementHostPropertyMap.cs
- Char.cs
- Hashtable.cs
- CompositeScriptReferenceEventArgs.cs
- SerializableAttribute.cs
- DBSqlParserTableCollection.cs
- XmlNodeReader.cs
- BigInt.cs
- LongMinMaxAggregationOperator.cs
- CollectionViewGroup.cs
- Guid.cs
- DecimalAverageAggregationOperator.cs
- SoapSchemaMember.cs
- DataGridColumnCollection.cs
- ErrorHandler.cs
- BinaryVersion.cs
- ConfigurationStrings.cs
- SingleAnimationBase.cs
- CustomCredentialPolicy.cs
- Image.cs
- X509AsymmetricSecurityKey.cs
- Visitors.cs
- OdbcUtils.cs
- CodeObjectCreateExpression.cs
- AnimationLayer.cs
- storepermissionattribute.cs
- MediaEntryAttribute.cs
- RectangleGeometry.cs
- XamlReader.cs
- UriTemplateDispatchFormatter.cs