/// <summary> /// When switching workspaces or closing NodePropertyPalette extension, /// unsubscribe workspace events for profiling /// </summary> /// <param name="workspace">target workspace</param> private void UnsubscribeWorkspaceEvents(HomeWorkspaceModel workspace) { workspace.NodeAdded -= CurrentWorkspaceModel_NodeAdded; workspace.NodeRemoved -= CurrentWorkspaceModel_NodeRemoved; workspace.EvaluationStarted -= CurrentWorkspaceModel_EvaluationStarted; workspace.EvaluationCompleted -= CurrentWorkspaceModel_EvaluationCompleted; foreach (var node in workspace.Nodes) { node.NodeExecutionBegin -= OnNodeExecutionBegin; node.NodeExecutionEnd -= OnNodeExecutionEnd; } foreach (var node in PropertyPaletteNodes) { node.Dispose(); } PropertyPaletteNodes.Clear(); }