private void RenameItemThreaded(object state) { object[] objs = state as object[]; ProcedureNode node = objs[0] as ProcedureNode; string newName = objs[1] as string; IEditSchemaProvider provider = (IEditSchemaProvider)node.Procedure.SchemaProvider; if (provider.IsValidName(newName)) { provider.RenameProcedure(node.Procedure, newName); node.Refresh(); } else { DispatchService.GuiDispatch(delegate() { MessageService.ShowError(String.Format( "Unable to rename procedure '{0}' to '{1}'!", node.Procedure.Name, newName )); }); } node.Refresh(); }