private void RequestNodeVisualUpdateAsync(NodeModel nodeModel, IRenderPackageFactory factory) { if (nodeModel != null) { // Visualization update for a given node is desired. nodeModel.RequestVisualUpdateAsync( dynamoModel.Scheduler, dynamoModel.EngineController, factory); } else { // Get each node in workspace to update their visuals. foreach (var node in dynamoModel.CurrentWorkspace.Nodes) { node.RequestVisualUpdateAsync( dynamoModel.Scheduler, dynamoModel.EngineController, factory); } } // Schedule a NotifyRenderPackagesReadyAsyncTask here so that when // render packages of all the NodeModel objects are generated, the // VisualizationManager gets notified. // var scheduler = dynamoModel.Scheduler; var notifyTask = new NotifyRenderPackagesReadyAsyncTask(scheduler); notifyTask.Completed += OnNodeModelRenderPackagesReady; scheduler.ScheduleForExecution(notifyTask); }