Интерфейс объекта


Windows предоставляет функции, которые выполняют нижеследующие задачи:

Некоторые из этих задач не необходимы для каждого объекта. Некоторые из этих задач объединяются для некоторых объектов. Например, приложение может создать объект события. Другие приложения могут открыть это событие, чтобы получить уникальный дескриптор объекта для этого события. По мере того, как приложение заканчивает использовать событие, оно закрывает его дескриптор объекта. Когда нет никаких оставшихся открытых дескрипторов объекта события, система уничтожает объект события. Напротив, прикладная программа может получить дескриптор существующего объекта окна. Когда объект окна больше не нужен, приложение должно уничтожить объект, который аннулирует дескриптор окна.

Иногда, объект остается в памяти после того, как все дескрипторы объекта были закрыты. Например, поток может создать объект события и ждать дескриптора события. В то время как этот поток ждет, другой поток может закрыть тот же самый дескриптор объекта события. Объект события остается в памяти, без каких-либо дескрипторов объекта события до тех пор, пока объект события не установиться в сигнальное состояние, а операция "занять" не завершиться. На этот раз, система удаляет объект из памяти.

Дескрипторы и объекты потребляют память. Поэтому, чтобы сохранить эффективность системы, Вы должны закрыть дескрипторы и удалять объекты, как только они - больше не нужны. Если Вы не делаете, это, ваше приложение может испортить эффективность системы вследствие чрезмерного использования подкачки файла.

Обратите внимание! на то, что когда процесс заканчивается, система автоматически закрывает дескрипторы и удаляет объекты, созданные процессом. Однако, когда поток заканчивается, система обычно не закрывает дескрипторы или удаляет объекты. Единственные исключения - окно, hook-точка, позиция окна, и разговор динамического обмена данными (DDE) между объектами; эти объекты разрушаются, когда создающий поток завершает свою работу.

 

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz