private void NotifyTaskStateChanged(AsyncTask task, TaskStateChangedEventArgs.State state)
        {
            var stateChangedHandler = TaskStateChanged;
            if (stateChangedHandler == null)
                return; // No event handler, bail.

            var e = new TaskStateChangedEventArgs(task, state);
            stateChangedHandler(this, e);

            if (state == TaskStateChangedEventArgs.State.Discarded)
            {
                task.HandleTaskDiscarded();
            }
        }
Esempio n. 2
0
        private void NotifyTaskStateChanged(AsyncTask task, TaskStateChangedEventArgs.State state)
        {
            var stateChangedHandler = TaskStateChanged;

            if (stateChangedHandler == null)
            {
                return; // No event handler, bail.
            }
            var e = new TaskStateChangedEventArgs(task, state);

            stateChangedHandler(this, e);

            if (state == TaskStateChangedEventArgs.State.Discarded)
            {
                task.HandleTaskDiscarded();
            }
        }
Esempio n. 3
0
        /// <summary>
        /// This event handler is invoked when DynamoScheduler changes the state
        /// of an AsyncTask object. See TaskStateChangedEventArgs.State for more
        /// details of these state changes.
        /// </summary>
        /// <param name="sender">The scheduler which raised the event.</param>
        /// <param name="e">Task state changed event argument.</param>
        ///
        private void OnAsyncTaskStateChanged(DynamoScheduler sender, TaskStateChangedEventArgs e)
        {
            var updateTask = e.Task as UpdateGraphAsyncTask;
            switch (e.CurrentState)
            {
                case TaskStateChangedEventArgs.State.ExecutionStarting:
                    if (updateTask != null)
                        ExecutionEvents.OnGraphPreExecution(new ExecutionSession(updateTask, this, geometryFactoryPath));
                    break;

                case TaskStateChangedEventArgs.State.ExecutionCompleted:
                    if (updateTask != null)
                    {
                        // Record execution time for update graph task.
                        long start = e.Task.ExecutionStartTime.TickCount;
                        long end = e.Task.ExecutionEndTime.TickCount;
                        var executionTimeSpan = new TimeSpan(end - start);

                        if (Logging.Analytics.ReportingAnalytics)
                        {
                            var modifiedNodes = "";
                            if (updateTask.ModifiedNodes != null && updateTask.ModifiedNodes.Any())
                            {
                                modifiedNodes = updateTask.ModifiedNodes
                                    .Select(n => n.GetOriginalName())
                                    .Aggregate((x, y) => string.Format("{0}, {1}", x, y));
                            }

                            Dynamo.Logging.Analytics.TrackTimedEvent(
                                Categories.Performance,
                                e.Task.GetType().Name,
                                executionTimeSpan, modifiedNodes);
                        }

                        Debug.WriteLine(String.Format(Resources.EvaluationCompleted, executionTimeSpan));

                        ExecutionEvents.OnGraphPostExecution(new ExecutionSession(updateTask, this, geometryFactoryPath));
                    }
                    break;
            }
        }
Esempio n. 4
0
        /// <summary>
        /// This event handler is invoked when DynamoScheduler changes the state 
        /// of an AsyncTask object. See TaskStateChangedEventArgs.State for more 
        /// details of these state changes.
        /// </summary>
        /// <param name="sender">The scheduler which raised the event.</param>
        /// <param name="e">Task state changed event argument.</param>
        /// 
        private void OnAsyncTaskStateChanged(DynamoScheduler sender, TaskStateChangedEventArgs e)
        {
            switch (e.CurrentState)
            {
                case TaskStateChangedEventArgs.State.ExecutionStarting:
                    if (e.Task is UpdateGraphAsyncTask)
                        ExecutionEvents.OnGraphPreExecution();
                    break;

                case TaskStateChangedEventArgs.State.ExecutionCompleted:
                    if (e.Task is UpdateGraphAsyncTask)
                    {
                        // Record execution time for update graph task.
                        long start = e.Task.ExecutionStartTime.TickCount;
                        long end = e.Task.ExecutionEndTime.TickCount;
                        var executionTimeSpan = new TimeSpan(end - start);

                        InstrumentationLogger.LogAnonymousTimedEvent(
                            "Perf",
                            e.Task.GetType().Name,
                            executionTimeSpan);

                        Debug.WriteLine(String.Format(Resources.EvaluationCompleted, executionTimeSpan));

                        ExecutionEvents.OnGraphPostExecution();
                    }
                    break;
            }
        }
Esempio n. 5
0
 internal void OnTaskStateChanged(
     DynamoScheduler scheduler,
     TaskStateChangedEventArgs e)
 {
     AddToResultList(e.Task.ToString(), e.CurrentState);
 }