public override bool Execute(ActivityExecutor executor, BookmarkManager bookmarkManager) { NativeActivityContext context = executor.NativeActivityContextPool.Acquire(); Fx.Assert(this.completedInstance.Activity != null, "Activity definition should always be associated with an activity instance."); try { context.Initialize(this.ActivityInstance, executor, bookmarkManager); this.callbackWrapper.Invoke(context, this.completedInstance); } catch (Exception e) { if (Fx.IsFatal(e)) { throw; } this.ExceptionToPropagate = e; } finally { context.Dispose(); executor.NativeActivityContextPool.Release(context); if (this.ActivityInstance.InstanceMap != null) { this.ActivityInstance.InstanceMap.RemoveEntry(this); } } return(true); }
public override bool Execute(ActivityExecutor executor, BookmarkManager bookmarkManager) { NativeActivityContext nativeContext = executor.NativeActivityContextPool.Acquire(); try { nativeContext.Initialize(this.ActivityInstance, executor, bookmarkManager); this.callbackWrapper.Invoke(nativeContext, this.bookmark, this.state); } catch (Exception e) { if (Fx.IsFatal(e)) { throw; } this.ExceptionToPropagate = e; } finally { nativeContext.Dispose(); executor.NativeActivityContextPool.Release(nativeContext); } return(true); }
public override bool Execute(ActivityExecutor executor, BookmarkManager bookmarkManager) { NativeActivityContext context = executor.NativeActivityContextPool.Acquire(); try { context.Initialize(base.ActivityInstance, executor, bookmarkManager); this.callbackWrapper.Invoke(context, this.completedInstance); } catch (Exception exception) { if (Fx.IsFatal(exception)) { throw; } base.ExceptionToPropagate = exception; } finally { context.Dispose(); executor.NativeActivityContextPool.Release(context); if (base.ActivityInstance.InstanceMap != null) { base.ActivityInstance.InstanceMap.RemoveEntry(this); } } return(true); }
internal override void InternalCancel(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) { NativeActivityContext context = executor.NativeActivityContextPool.Acquire(); try { context.Initialize(instance, executor, bookmarkManager); Cancel(context); } finally { context.Dispose(); executor.NativeActivityContextPool.Release(context); } }