Удаление объекта или группы объектов
Выделите в окне Проводника или папке Мой компьютер объект (или группу объектов) и воспользуйтесь следующими способами удаления:
1) выберите команду меню Файл/Удалить;
2) нажмите клавишу Delete на клавиатуре;
3) нажмите кнопку Удалить (Delete) на панели инструментов окна приложения, в котором работаете;
4) щелкните правой кнопкой мыши на выделенных объектах и в открывшемся контекстном меню выберите команду Удалить (Delete);
5) перетащите мышью в Корзину.
Чтобы сразу удалить объект с жесткого диска, не отправляя его в Корзину, выделите этот объект и нажмите комбинацию клавиш Shift+Delete.
Для безвозвратного удаления объектов необходимо щелкнуть правой клавишей мыши по значку Корзины и в открывшемся контекстном меню выбрать команду Очистить корзину.
Объекты, удаленные с дискеты, сетевого диска, в Корзину не помещаются.
Восстановление удаленных объектов
1) Выполните двойной щелчок по значку Корзины.
2) В открывшемся окне Корзина выделите объект (или группу объектов) подлежащий восстановлению и выберите команду меню Фай/Восстановить.
Если удаляется папка, то вместе с ней в Корзину помещаются все находящиеся в ней файлы. При восстановлении файла, находившегося в удаленной папке, вначале будет восстановлена сама эта папка.
Свойства Корзины
В Корзину помещаются удаляемые объекты системы (файл, папка, ярлык и др.).
Диалоговое окно свойств Корзины можно открыть с помощью команды Свойства контекстного меню. В этом окне устанавливаются единые и различные параметры для дисков: максимальный объем корзины, запросы на удаление.
Корзину следует периодически очищать от накапливающихся в ней объектов.
ПОИСК ДАННЫХ. СПРАВОЧНАЯ СИСТЕМА
Способы удаление объектов
Способ 1. Использование команд меню окна:перейдите в окно своей папки; откройте папку Тренировка; выделите файл с описанием лабораторной работы 1; в меню окна выберите команду ФайлÞУдалить (или в панели инструментов нажмите пиктограмму 
Способ 2. Использование команд контекстного меню:в папке Тренировка в контекстном меню файла с описанием лабораторной работы 2 выберите команду Удалить.
Способ 3. Использование «мыши»:в папке Тренировка выделите файл с описанием лабораторной работы 3; нажав левую клавишу «мыши», переместите выделенный файл в папку Корзина (при необходимости сверните или сместите на Рабочем столе «мешающие» окна).
Способ 4. Использование клавиатуры:в папке Тренировка выделите файл с описанием лабораторной работы 4; нажмите на клавиатуре клавишу Delete.
В результате всех проделанных действий выделенные файлы будут удалены в Корзину.
Внимание! Операции копирования, перемещения, удаления довольно часто приходится выполнять над группой объектов. С этой целью необходимо сначала выделить несколько объектов, а затем выполнить необходимые действия по выполнению операций. Для выделения блока файлов необходимо щелкнуть в одном углу блока и растянуть выделение до противоположного угла блока. Для выделения нескольких смежных файлов – выделить имя первого файла, нажать клавишу Shift и выделить последний файл из группы. Для выделения нескольких несмежных файлов – нажать клавишу Ctrlи щелкать по именам нужных файлов. Для выделения всех файлов в папке можно использовать команду из меню окна Правка Þ Выделить все.
Пример 2. Работа в Проводнике.Основные действия с объектами в Проводнике рассмотрим на примере копирования (создания ярлыков) файлов:
· запустите программу Проводник (любым способом);
· выделите в левой панели (Папки) сетевую папку с описанием лабораторных работ (L: Þ Информатика…), при этом содержимое папки отобразится в правой панели Проводника;
· продолжая навигацию в левой панели Проводника (раскрывая или сворачивая структуру папок в узлах «+» или «-»), найдите в своей папке папку Тренировка (не выделяя её!);
· в правой панели выделите описание лабораторной работы 1, нажав правую клавишу «мыши», переместите выделенный файл в папку Тренировка; из меню специального перетаскивания выберите команду Создать ярлыки.
Пример 3. Работа в Far Manager.Основные действия с объектами в Far Manager рассмотрим на примере создания каталогов и копирования файлов:
· запустите программу Far Manager;
· установите в левой панели диск U: (Alt-F1), войдите в свой каталог;
· нажмите на клавиатуре функциональную клавишу F7 (или кнопку F7 в строке функциональных клавиш), в диалоговой панели введите название каталога, нажмите OK;
· установите в правой панели диск U: (Alt-F2), войдите в созданный каталог;
· в левой панели войдите в каталог Описание лабораторных работ; скопируйте в созданный каталог описание лабораторной работы 1 (нажмите на клавиатуре функциональную клавишу F5 (или кнопку F5 в строке функциональных клавиш), в диалоговой панели нажмите OK).
Дата добавления: 2015-09-07 ; просмотров: 3711 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Удаление объекта в C++ без создания его через new, или можно ли удалять объекты взятием адреса (&)?
В итоге попробовал такой метод:
Огромное спасибо всем, кто отпишется по данному вопросу.
> Объект BaseClassObj будет удален только по завершению программы.
BaseClass baseClassObj;
Здесь создаётся объект на стеке. Имя — это просто имя объекта. Никаких указателей здесь нет. Как только мы покинем блок (любым образом: штатно выйти, goto, break, выброс аварии — кроме «жёсткого» выхода из программы функциями типа exit), у объекта автоматически исполнится деструктор и прямой вызов не нужен. Блок, то есть подпрограмму BaseClassPresentation.
BaseClass *BaseClassObjPtr = new BaseClass(2);
Здесь BaseClassObjPtr это имя указателя (а не указатель на указатель). Объект создаётся в динамической памяти, и его придётся уничтожать вручную. Многое в Си++11 сделали для того, чтобы подобные объекты уничтожались не вручную, а всё теми же автодеструкторами.
Это уже маленький объект со своим деструктором. А в деструкторе находится delete, и он сработает, как только программа выйдет из своего блока.
То, что вы хотите, иногда бывает нужно, и я вижу этому две причины.
1. Объект управляет какими-то сложными и важными ресурсами: большим количеством памяти, файлом, мьютексом… И этот важный ресурс бывает нужно освободить раньше, чем наступит деструктор. Например, у любого файлового потока есть функция close() — она закрывает файл.
2. У нас сложное и хитрое управление памятью, когда приходится использовать placement new и прямой вызов деструктора. Скажу честно, не использовал никогда. Как и 90% программистов на Си++.
Огромное Вам спасибо за развернутый и понятный ответ!
Однако, я все еще не совсем понимаю, что же происходит в этот момент:
Удаление объектов
Дата последнего изменения: 8 апреля 2010 г.
Применимо к: SharePoint Foundation 2010
В этой статье
Введение в использование удаляемых объектов SharePoint
Поиск неправильно удаляемых объектов
Приемы написания кода для обеспечения удаления объектов
Объекты SPSite
Объекты SPWeb
Другие объекты, требующие удаления
Заключение
Введение в использование удаляемых объектов SharePoint
Объекты в объектных моделях Microsoft SharePoint Foundation 2010 и Microsoft SharePoint Server 2010 служат в качестве интерфейса для работы с данными SharePoint Foundation. Разработчики часто вызывают объектную модель для чтения или записи данных в хранилищах данных SharePoint Foundation 2010 и SharePoint Server 2010.
В частности, необходимо явно удалить объекты SharePoint, реализующие интерфейс IDisposable, после завершения их использования.
В сценариях, в которых интенсивно применяются объекты SharePoint (например, на сайтах SharePoint, содержащих настраиваемые веб-части), в результате неправильного удаления объектов SharePoint после завершения их использования может наблюдаться следующее нестандартное поведение.
Частый перезапуск пула приложений SharePoint Foundation, особенно во время пиковых нагрузок
Сбои приложений, отображающиеся в отладчике как повреждение кучи
Использование большого объема памяти рабочими процессами служб IIS
Низкая производительность системы и приложений
Данная статья служит в качестве руководства по выполнению требуемых процедур для обработки и удаления объектов SharePoint, реализующих интерфейс IDispose. Проблемы, описанные в данной статье, также выявляются средством проверки удаления объектов SharePoint (Возможно, на английском языке), доступной для загрузки бесплатной программой, которая проверяет сборки на наличие способов написания кода, приводящих к утечке памяти из-за неправильной обработки и удаления объектов SharePoint.
Почему необходимо удалять объекты
Некоторые объекты SharePoint Foundation, особенно объекты класса SPSite и SPWeb, создаются как управляемые объекты. Однако эти объекты используют неуправляемый код и память для выполнения основной части их работы. Управляемая часть объекта много меньше, чем неуправляемая часть. Так как меньшая управляемая часть не создает нехватку памяти, видимую для сборщика мусора, сборщик мусора не освобождает память своевременно от объекта. Использование объектом большого количества неуправляемой памяти может вызвать некоторое неприемлемое поведение, описанное выше. При вызове приложений, работающих с объектами IDisposable в SharePoint Foundation, необходимо удалять эти объекты после завершения использования их приложением. Нельзя полагаться на сборщик мусора и автоматическое освобождение объектов из памяти.
Поиск неправильно удаляемых объектов
Ниже перечислены вопросы, которые помогут определить потенциальное наличие неправильно удаляемых объектов:
Часто ли перезапускается пул приложений, особенно при большой нагрузке (подразумевается, что пул приложений настроен на перезапуск при достижении порогового значения памяти)?
Пороговое значение памяти должно быть от 800 МБ до 1,5 ГБ, при наличии минимум 2 ГБ ОЗУ. Перезапуск пула приложений при значении, близком к 1 ГБ, дает лучшие результаты, но рекомендуется провести экспериментальное определение того, какое значение лучше работает в имеющейся среде. Если параметр перезапуска слишком мал, в системе будут возникать проблемы с производительностью из-за частого перезапуска пула приложений. Если параметр слишком велик, в системе будут возникать проблемы с производительностью из-за подкачки страниц, фрагментации памяти и других проблем.
Наблюдается ли плохая работа системы, особенно при больших нагрузках?
При возрастании использования памяти система должна компенсировать это, например, посредством страничной памяти и ее дефрагментации.
Происходят ли сбои системы или возникают ли у пользователей непредвиденные ошибки, такие как ошибки окончание времени ожидания или «страница недоступна», особенно при больших нагрузках?
При увеличении использования памяти или ее фрагментации некоторые функции завершаются ошибкой, так как они не могут выделить память для других действий. Во многих случаях код неправильно обрабатывает исключение «недостаточно памяти», что приводит к ложным или неправильно интерпретируемым ошибкам.
Используются ли в системе настраиваемые или сторонние веб-части или настраиваемые приложения?
Возможно, эти веб-части не удаляют объекты SharePoint, подразумевая, что сборщик мусора выполняет эту функцию автоматически. Однако это верно не во всех случаях.
Если был дан ответ «да» на вопрос 4 и один или несколько других вопросов, есть большая вероятность, что настраиваемый код не удаляет элементы правильно.
Если сайты проявляют какое-либо необычное поведение, описанное выше, можно определить, является ли причиной нехватка памяти из-за неправильно удаляемых объектов, проверив журналы ULS (доступные в папке C:\Program Files\Common Files\microsoft shared\Web Server Extensions\14\LOGS) на записи, связанные с объектом SPRequest. Каждый экземпляр SPSite и SPWeb содержит ссылку на объект SPRequest, который в свою очередь содержит ссылку на неуправляемый объект COM, обрабатывающий связь с сервером баз данных. SharePoint Foundation отслеживает число объектов SPRequest, которые существуют в каждом определенном потоке и параллельных потоках и добавляет полезные записи в журналы в трех следующих сценариях:
Полное число объектов SPRequest превышает настраиваемый порог.
Объект SPRequest продолжает существовать после завершения потока.
Объект SPRequest был удален из кучи сборщиком мусора.
Первый сценарий встречается наиболее часто, особенно если сайт использует значение порога по умолчанию для девяти объектов SPRequest. Если число объектов SPRequest превышает порог, в журналах ULS появляется следующая запись:
«Potentially excessive number of SPRequest objects (number of objects) currently unreleased on thread number of thread. Ensure that this object or its parent (such as an SPWeb or SPSite object) is being properly disposed. Allocation Id for this object:
Лучшее значение порога зависит от свойств сайта и приложений, работающих на нем. Если сайты испытывают проблемы с производительностью, необходимо проверить журналы ULS установки, чтобы понять, сколько объектов SPRequest создается приложениями сайта. Это поможет определить, создают ли сайты и приложения слишком много объектов SPRequest. Даже если неправильное удаление объектов не является причиной проблем производительности, может потребоваться переделать сайты или настраиваемые приложения сайтов, чтобы уменьшить общее потребление памяти, вызванное избыточным числом объектов SPRequest.
Так как очень маленькое значение порога по умолчанию не может применяться ко многим сайтам, можно изменить это значение, отредактировав следующий раздел реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\HeapSettings
LocalSPRequestWarnCount = требуемое значение порога
После определения того, что неправильное удаление объектов может быть причиной большого числа объектов SPRequest и увеличения потребления памяти сайтами без необходимости, можно найти определенные экземпляры с неправильным удалением, просмотрев следующие две записи. Оба сообщения указывают на случаи неэффективного использования памяти из-за неправильного удаления объектов SharePoint, и оба случая зависят от числа и состояния объектов SPRequest в одном потоке:
«Объект SPRequest не был удален перед завершением этого потока. Чтобы избежать неэффективного использования системных ресурсов, удалите этот объект или его родительский объект (например, SPSite или SPWeb), как только использование объекта будет завершено. Этот объект будет удален. Идентификатор выделения:
Это сообщение указывает, что объект SPRequest был удален из-за того, что он существовал после завершения потока.
«An SPRequest object was reclaimed by the garbage collector instead of being explicitly freed. To avoid wasting system resources, dispose this object or its parent (such as an SPSite or SPWeb) as soon as you are done using it. Allocation Id:
Это сообщение указывает, что сборщик мусора удалил объект SPRequest.
Чтобы определить код, приводящий к этой проблеме, можно выполнить поиск в журналах на записи, содержащие идентификаторы выделения, или следовать инструкциям в предупреждении и добавить следующий параметр в реестр:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\HeapSettings SPRequestStackTrace = 1
Этот параметр подраздела обеспечивает то, что трассировка стека изначального выделения SPRequest (которое происходит при создании объектов SPSite или SPWeb) будет добавлена в журналы при возникновении этого предупреждения.
В следующих разделах описаны некоторые приемы написания кода, которые можно использовать для обеспечения правильного удаления объектов.
Приемы написания кода для обеспечения удаления объектов
Можно использовать несколько приемов написания кода, чтобы обеспечить удаление объектов. Эти приемы включают использование в коде следующих элементов:
Блоки try, catch и finally
Использование методов Dispose или Close
Оператор using
Можно автоматически удалять объекты SharePoint, реализующие интерфейс IDisposable, с помощью оператора using в Microsoft Visual C# и Visual Basic.
В следующем коде приведен пример.
Использование оператора using может существенно упростить код. Как отмечено в справочнике по C# (Оператор using), среда выполнения CLR преобразует операторы using в блоки try and finally, и все объекты, реализующие интерфейс IDisposable, удаляются. Однако во многих случаях операторы using не рекомендуются, или они должны использоваться с некоторыми предосторожностями и пониманием того, что делает среда выполнения. В следующем примере кода показан один случай, где может потребоваться не позволять среде выполнения создавать блок finally и удалять объекты. В этом случае SPContext возвращает объект SPWeb.
Объекты SPContext управляются платформой SharePoint и не должны явно удаляться в коде. Это верно также для объектов SPSite и SPWeb, возвращаемых SPContext.Site, SPContext.Current.Site, SPContext.Web и SPContext.Current.Web.
Примечание | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Примечание | |||||||||
|---|---|---|---|---|---|---|---|---|---|
Примечание | ||||||||
|---|---|---|---|---|---|---|---|---|
Примечание | |||||||
|---|---|---|---|---|---|---|---|
Примечание | ||||||
|---|---|---|---|---|---|---|
Примечание | |||||
|---|---|---|---|---|---|
Примечание | ||||
|---|---|---|---|---|
Примечание | |||
|---|---|---|---|
Примечание | ||
|---|---|---|
Примечание | |
|---|---|
Примечание |
|---|
Примечание |
|---|


Примечание


