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
- String.cs
- SqlProviderManifest.cs
- ListBoxItemAutomationPeer.cs
- NameValueFileSectionHandler.cs
- XmlnsPrefixAttribute.cs
- DataGridLinkButton.cs
- RtType.cs
- FrameworkContextData.cs
- SupportingTokenSpecification.cs
- NonSerializedAttribute.cs
- Ops.cs
- XamlVector3DCollectionSerializer.cs
- Int32.cs
- SapiAttributeParser.cs
- XmlBinaryReader.cs
- DBBindings.cs
- EntityFrameworkVersions.cs
- codemethodreferenceexpression.cs
- BindableTemplateBuilder.cs
- InlineUIContainer.cs
- ComPlusTypeLoader.cs
- DataServiceSaveChangesEventArgs.cs
- EncoderParameters.cs
- BuilderInfo.cs
- DesignerSerializerAttribute.cs
- MD5Cng.cs
- AudioFormatConverter.cs
- TextTreeDeleteContentUndoUnit.cs
- InvalidOperationException.cs
- SerializationIncompleteException.cs
- ToolbarAUtomationPeer.cs
- GiveFeedbackEventArgs.cs
- StatusBar.cs
- MouseBinding.cs
- GZipObjectSerializer.cs
- ObjectDataSourceMethodEventArgs.cs
- RepeaterCommandEventArgs.cs
- SupportingTokenSpecification.cs
- DependencyPropertyConverter.cs
- ColumnMapVisitor.cs
- XmlAttributeCollection.cs
- DataGridTextBox.cs
- MatrixKeyFrameCollection.cs
- HttpCookie.cs
- X509ImageLogo.cs
- SqlDataSourceStatusEventArgs.cs
- TypeInfo.cs
- Formatter.cs
- XmlChildEnumerator.cs
- ClientScriptManager.cs
- StatusBarPanel.cs
- UriSectionReader.cs
- OutputCacheModule.cs
- ResourceAssociationSetEnd.cs
- OperandQuery.cs
- _TransmitFileOverlappedAsyncResult.cs
- EdmProperty.cs
- InnerItemCollectionView.cs
- SqlDataSourceConfigureSortForm.cs
- EventListenerClientSide.cs
- BaseComponentEditor.cs
- ViewGenResults.cs
- DesignerTextBoxAdapter.cs
- ConfigLoader.cs
- LineSegment.cs
- EndPoint.cs
- BulletChrome.cs
- DataColumnPropertyDescriptor.cs
- HyperLinkDataBindingHandler.cs
- TaiwanCalendar.cs
- ListViewPagedDataSource.cs
- CodeConstructor.cs
- SendActivityValidator.cs
- RoutedEventArgs.cs
- BuiltInPermissionSets.cs
- TreeIterator.cs
- PauseStoryboard.cs
- SelectionRangeConverter.cs
- TreeViewHitTestInfo.cs
- __Error.cs
- arc.cs
- DocumentViewerBaseAutomationPeer.cs
- CustomAttributeFormatException.cs
- TaskHelper.cs
- ForeignKeyConstraint.cs
- CommandValueSerializer.cs
- CheckBoxStandardAdapter.cs
- CompilationUtil.cs
- ScrollViewer.cs
- ParallelLoopState.cs
- GC.cs
- Models.cs
- AdapterDictionary.cs
- LoginName.cs
- TrackingParameters.cs
- WebPartAddingEventArgs.cs
- CompositeScriptReference.cs
- ProjectionPruner.cs
- WebPartConnectionsConnectVerb.cs
- TypefaceMetricsCache.cs