- •21. Графы, основные понятия теории графов, представление графов.
- •22. Алгоритмы обхода графа: обход в глубину.
- •23. Алгоритмы обхода графа: обход в ширину.
- •24. Деревья, бинарные деревья, дерево двоичного поиска.
- •25. Алгоритмы обхода дерева.
- •26. Обработка исключений, оператор try.
- •27. Обработка исключений, операторы checked, unchecked.
- •28. Генерация собственных исключений
- •29. Работа с файловой системой: классы File и FileInfo.
- •30. Работа с файловой системой: классы Directory и DirectoryInfo.
- •31. Механизм сборки мусора, жизненный цикл объекта, поколения объектов.
- •32. Программирование под Windows, событийно-управляемая модель.
- •33. Архитектура приложений Windows Forms
- •34. Стандартные элементы управления: текстовые поля, кнопки, переключатели.
- •35. Стандартные элементы управления: списки, окна диалога.
- •36. Динамическое создание и удаление элементов управления.
- •37. Обработка событий мыши.
- •39. Делегаты. Определение и использование делегатов.
- •40. События. Событийная модель “publisher/subscribers”
- •38. Обработка событий клавиатуры.
32. Программирование под Windows, событийно-управляемая модель.
В первую очередь рассмотрим основные особенности Windows как характерного и широко распространенного представителя современных операционных систем.
Многозадачность — это возможность одновременно выполнять несколько приложений. Операционная система обеспечивает разделение ресурсов: каждому приложению выделяется свое адресное пространство, распределяется процессорное время и организуются очереди для доступа к внешним устройствам.
Внутри приложения также можно организовать параллельное выполнение нескольких фрагментов, называемых потоками.
Независимость программ от аппаратуры. Для управления аппаратными средствами любое приложение обращается к операционной системе, что обеспечивает независимость от конкретных физических характеристик устройств: при смене устройства никакие изменения в программу вносить не требуется. Управление внешними устройствами обеспечивается с помощью драйверов.
Стандартный графический интерфейс с пользователем. Основное взаимодействие с пользователем осуществляется в графическом режиме. Каждое приложение выполняет вывод в отведенную ему прямоугольную область экрана, называемую окном. Окно состоит из стандартных элементов. Это упрощает освоение программ пользователем и облегчает работу программиста, поскольку в его распоряжение предоставляются библиотеки интерфейсных компонентов. Такие библиотеки входят в состав систем программирования.
Интерфейсные компоненты обращаются к аппаратуре не непосредственно, а через функции операционной системы, называемые API (Application Program Interface — программный интерфейс приложения). API-функции находятся в динамических библиотеках (Dynamic Link Library, DLL), разделяемых всеми приложениями. Эти библиотеки называются динамическими потому, что находящиеся в них функции не подключаются к каждому исполняемому файлу до выполнения программы, а вызываются в момент обращения к ним.
В основе пользовательского интерфейса Windows лежит представление экрана как рабочего стола, на котором располагаются листы бумаги — окна приложений, ярлыки и меню. Одни элементы могут полностью или частично перекрывать другие, пользователь может изменять их размеры и перемещать их. Приложение может иметь несколько окон, одно из них является главным. При закрытии главного окна приложение завершается.|
Поддержка виртуального адресного пространства для каждого приложения. |
Каждому приложению доступно пространство адресов оперативной памяти размером до 4 Гбайт. Операционная система отображает его на физические адреса и обеспечивает защиту приложений друг от друга.
Возможность обмена данными между приложениями. Приложения могут обмениваться данными через буфер обмена или используя другие механизмы, например OLE (Object Linking and Embedding — связывание и внедрение объектов) или именованные программные каналы.
В основу Windows положен принцип событийного управления. Это значит, что и сама система, и приложения после запуска ожидают действий пользователя и реагируют на них заранее заданным образом. Любое действие пользователя (нажатие клавиши на клавиатуре, щелчок кнопкой мыши, перемещение мыши) называется событием. Событие воспринимается Windows и преобразуется в сообщение — запись, содержащую необходимую информацию о событии (например, какая клавиша была нажата, в каком месте экрана произошел щелчок мышью). Сообщения могут поступать не только от пользователя, но и от самой системы, а также от активного или других приложений. Определен достаточно широкий круг стандартных сообщений, образующий иерархию, кроме того, можно определять собственные сообщения.
Сообщения поступают в общую очередь, откуда распределяются по очередям приложений. Каждое приложение содержит цикл обработки сообщений, который выбирает сообщение из очереди и через операционную систему вызывает подпрограмму, предназначенную для его обработки. Таким образом, Windows-приложение состоит из главной программы, обеспечивающей инициализацию
и завершение приложения, цикла обработки сообщений и набора обработчиков событий.