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(); } }
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(); } }
/// <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; } }
/// <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; } }
internal void OnTaskStateChanged( DynamoScheduler scheduler, TaskStateChangedEventArgs e) { AddToResultList(e.Task.ToString(), e.CurrentState); }