Демонстрационное многопоточное приложение с динамическим изменением свойств окна и компонент
Краткое сожержание материала:
Размещено на
Содержание
Введение
1. Реализация потоков в Delphi
1.1 Потоки в Delphi
1.2 Класс TThread
2. Разработка демонстрационного многопоточного приложения
2.1 Постановка задачи
2.2 Выбор средств реализации
2.3 Описание логики работы приложения и разработка программного обеспечения
2.4 Описание пользовательского интерфейса
Заключение
Список использованной литературы
Приложение А (обязательное)
Введение
Информатика - это область человеческой деятельности, связанная с процессами преобразования информации с помощью компьютеров и их взаимодействием со средой применения. Информатика появилась благодаря развитию компьютерной техники и немыслима без нее.
Одним из важнейших разделов информатики является программирование. Язык программирования - это формальный, искусственно созданный язык для написания и реализации алгоритма на компьютере.
Среди главных причин, принесших заслуженную популярность объектно-ориентированного программирования, следует отметить следующие:
· почти полное разрешение проблемы кризиса в программном обеспечении, за счет уменьшения времени на разработку программного продукта и высокой технологии программирования;
· переход от существующих языков программирования к новым, прогрессивным информационным технологиям и сходство идей объектно-ориентированного программирования с идеями из других областей науки.
Методы ООП для решения технических задач нередко используются в повседневной жизни, поэтому, обучение языкам объектно-ориентированного программирования не вызывает особых трудностей.
Преимущество ООП в наглядном представлении программы с помощью объектов (кнопок, строк для ввода информации и др.). Каждый объект принадлежит определенному классу. Например, кнопка (Button1) принадлежит классу кнопок TButton. В класс входит сколь угодно много объектов, объединенных в одну группу согласно их свойствам и поведению в среде окружения, в которой они существуют и взаимодействуют.
Появление Delphi не могло пройти незамеченным среди многочисленных пользователей компьютера. Оценки экспертов, изучающих возможности этого нового продукта фирмы Borland, обычно окрашены в восторженные тона. Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов.
В данном курсовом проекте к рассмотрению предоставлены следующие вопросы:
· Потоки в Delphi.
· Класс TThread.
Практической частью курсового проекта является разработка демонстрационного многопоточного приложения с динамическим изменением свойств окна и компонент.
1. Реализация потоков в Delphi
1.1 Потоки в Delphi
Работая с Delphi, нужно иметь в виду: этот замечательный продукт не только упрощает разработку сложных приложений, он использует при этом все возможности операционной системы. Одна из возможностей, которую поддерживает Delphi, -- это так называемые потоки (threads) или нити.
Потоки позволяют в рамках одной программы решать несколько задач одновременно. С недавних пор операционные системы для персональных компьютеров сделали это возможным.
Операционная система (ОС) предоставляет приложению некоторый интервал времени центрального процессора (ЦП) и в момент, когда приложение переходит к ожиданию сообщений или освобождает процессор, операционная система передает управление другой задаче. Теперь, когда компьютеры с более чем одним процессором резко упали в цене, а операционная система Windows NT может использовать наличие нескольких процессоров, пользователи действительно могут запускать одновременно более одной задачи. Планируя время центрального процессора, Windows 95 или Windows NT распределяют его между потоками, а не между приложениями. Чтобы использовать все преимущества, обеспечиваемые несколькими процессорами в современных операционных системах, программист должен знать, как создавать потоки.
Потоки -- это объекты, получающие время процессора. Время процессора выделяется квантами. Квант времени -- это интервал, имеющийся в распоряжении потока до тех пор. пока время не будет передано в распоряжение другого потока.
1.2 Класс Tthread
Delphi представляет программисту полный доступ к возможностям программирования интерфейса Win32.
Класс TThread -- прекрасный пример предоставления разработчику простого доступа к программированию потоков.
Зачем же нужен класс Thread и его потомки? Во-первых, этот объект позволяет создавать как бы несколько программ в одной (несколько процессов, или, потоков). Во-вторых, эти процессы могут выполняться как по очереди, так и одновременно (как запрограммирует разработчик). В-третьих, из этих процессов можно легко получить доступ ко всем глобальным данным программы, т.к. класс процесса является, по сути, просто частью программы - обычным юнитом (unit). В-четвертых, можно создать своих собственных потомков TThread и запустить сразу несколько экземпляров одного и того же созданного класса. В-пятых, каждым процессом очень легко управлять - запускать, завершать, приостанавливать, прерывать, устанавливать приоритетность, и т.д.
Сам API потоков не очень сложен, но предоставленные классом TThread возможности вообще замечательно просты. Все, что необходимо сделать, -- это перекрыть виртуальный метод Execute.
Другая отличительная черта класса TThread -- это гарантия безопасной работы с библиотекой визуальных компонентов VCL. Без использования класса TThread во время вызовов VCL могут возникнуть ситуации, требующие специальной синхронизации.
С точки зрения операционной системы поток -- это ее объект. При создании он получает дескриптор и отслеживается ОС. Объект класса TThread -- это конструкция Delphi, соответствующая потоку ОС. Этот объект VCL создается до реального возникновения потока в системе и уничтожается после его исчезновения.
2. Разработка демонстрационного многопоточного приложения
2.1 Постановка задачи
Разработка демонстрационного многопоточного приложения с динамическим изменением свойств окна и компонент.
Основные требования: Наличие кнопок «Запуск потока», «Остановка потока», «Завершение потока» по нажатию на которые соответственно начинается, останавливается и завершается демонстрация работы потока. Запуск потока после его остановки должен выполняться с состояния, в котором поток был остановлен. После остановки потока обеспечить возможность сохранения данных в файле и загрузки их при следующем запуске программы.
Общие требования:
1. Для реализации многопоточного приложения использовать компонент TThread.
2. Тип приложения: GUI
2.2 Выбор средств реализации
Для выполнения проекта был выбран язык программирования Delphi, так как он сочетает в себе простоту выполнения задачи, построения пользовательского интерфейса, а также обладает мощным набором функций, экономящим время на разработку программного обеспечения.
Так же в проекте используется TThread-абстрактный класс для реализации потоков.
Свойства и методы класса TThread, используемые в данном проекте представлены в таблицах 1 и 2.
Таблица 1.
Свойства класса TТhread.
Свойство |
Описание |
|
property FreeOnTerminate: Boolean; |
Определяет, будет ли объект потока уничтожен автоматически при завершении потока. Если свойство равно True, то поток будет уничтожен автоматически при завершении, если свойство равно False, то поток должен уничтожаться явно в коде приложения. |
|
property Handle: THandle; |
Содержит дескриптор потока. Используется для управления потоком с помощью функций Windows API. |
|
property Priority: TThreadPriority; |
Определяет приоритет потока относительно других потоков в процессе. |
|
property ReturnValue: Integer; |
Определяет значение, возвращаемое потоком при его завершении. |
|
property Suspended: Boolean; |
Показывает, является ли поток приостановленным. Если установить свойство в True, то поток будет приостановлен, если установить свойство в False выполнение потока будет продолжено. |
|
property Terminated: Boolean; |
Показывает, был ли произведен вызов метода Terminate. |
|
property ThreadID: THandle; |
Идентифицирует поток в системе. |
...
Многопоточное программирование
Создание потока с помощью конструктора на основе класса Thread, интерфейса Runnable, синхронизации потоков. Краткая справка по необходимым программным...
Работа с базами данных через интерфейс
Каждый визуальный компонент имеет набор свойств, которые можно устанавливать программно или во время проектирования приложения. Для ознакомления с нек...
Программирование на Object Pascal в среде Delphi
Цель лабораторной работы: изучить основные элементы визуальной среды, освоить использование простейших компонентов DELPHI для ввода/вывода данных, и с...
Организация учета труда и заработной платы
Приложение №1Баланс на 31.12.2006Приложение №2Звіт про фінансові результати за 2006р.Приложение №3Разработанный план счетов(извлечение), на которых от...
Исследование свойств многоканальных доплеровских фильтров
Исследование частотных свойств фильтра. Особенности уровня боковых лепестков, шумовых полос, максимальных потерь преобразования окна Кайзера-Бесселя п...