Ejemplo n.º 1
0
        private void DoStartJobAsync(object state)
        {
            _tracer.WriteMessage(ClassNameTrace, "DoStartJobAsync", WorkflowGuidForTraces, this, "");
            Dbg.Assert(state == null, "State is never used");
            var asyncOp = AsyncOperationManager.CreateOperation(null);

            var workerDelegate = new JobActionWorkerDelegate(JobActionWorker);
            workerDelegate.BeginInvoke(
                asyncOp,
                ActionType.Start,
                string.Empty,
                string.Empty,
                false,
                null,
                null);
        }
Ejemplo n.º 2
0
        private void DoResumeJobAsync(object state)
        {
            _tracer.WriteMessage(ClassNameTrace, "DoResumeJobAsync", WorkflowGuidForTraces, this, "");
            var label = state as string;
            var asyncOp = AsyncOperationManager.CreateOperation(null);

            var workerDelegate = new JobActionWorkerDelegate(JobActionWorker);
            workerDelegate.BeginInvoke(
                asyncOp,
                ActionType.Resume,
                string.Empty,
                label,
                false,
                null,
                null);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Stop job asynchronously
        /// </summary>
        /// <param name="force">True to force stop</param>
        /// <param name="reason">Reason for forced stop</param>
        /// <param name="suppressError">Suppress error for forced stop</param>
        public void StopJobAsync(bool force, string reason, bool suppressError)
        {
            AssertNotDisposed();
            _tracer.WriteMessage(ClassNameTrace, "StopJobAsync", WorkflowGuidForTraces, this, "");

            var asyncOp = AsyncOperationManager.CreateOperation(null);
            var workerDelegate = new JobActionWorkerDelegate(JobActionWorker);

            ActionType actionType = ActionType.Stop;

            if (force)
            {
                actionType = ActionType.Terminate;
            }

            workerDelegate.BeginInvoke(
                asyncOp,
                actionType,
                reason,
                string.Empty,
                suppressError,
                null,
                null);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Suspend Job Asynchronously
        /// </summary>
        /// <param name="force"></param>
        /// <param name="reason"></param>
        public override void SuspendJobAsync(bool force, string reason)
        {
            AssertNotDisposed();
            _tracer.WriteMessage(ClassNameTrace, "SuspendJobAsync", WorkflowGuidForTraces, this, "");

            var asyncOp = AsyncOperationManager.CreateOperation(null);
            var workerDelegate = new JobActionWorkerDelegate(JobActionWorker);
            ActionType actionType = ActionType.Suspend;

            if (force)
            {
                actionType = ActionType.Abort;
            }

            workerDelegate.BeginInvoke(
                    asyncOp,
                    actionType,
                    reason,
                    string.Empty,
                    false,
                    null,
                    null);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Asynchronously suspend a job
        /// </summary>
        public override void SuspendJobAsync()
        {
            AssertNotDisposed();
            _tracer.WriteMessage(ClassNameTrace, "SuspendJobAsync", WorkflowGuidForTraces, this, "");
            var asyncOp = AsyncOperationManager.CreateOperation(null);

            var workerDelegate = new JobActionWorkerDelegate(JobActionWorker);
            workerDelegate.BeginInvoke(
                asyncOp,
                ActionType.Suspend,
                string.Empty,
                string.Empty,
                false,
                null,
                null);
        }