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