На нашем сайте ежедневно публикуются десятки качественных и свежих материалов, которые Вы можете скачать абсолютно бесплатно. Рекомендуем Вам добавить Наш сайт в закладки, а также подписаться на RSS ленту, чтобы не пропускать интересных новостей.
Данное приложение демонстрирует возможность организации многопоточного решения квадратного уравнения с использованием метода синхронизации на основе событий (events) и способа передачи данных с помощью почтовых ячеек (mailslots). Главный поток процесса предоставляет возможность ввода коэффициентов а также обеспечивает вывод решения на экран. В то время как пять вспомогательных потоков обеспечивают выполнение операций умножения, деления, вычитания, сложения и взятия квадратного корня.
Пример многооконого (MDI) многопоточного приложения
Создадим многооконное приложение, в каждом окне которого отдельный поток будет рисовать случайные отрезки. Создайте заготовку MDI-приложения (File->New->Other, перейдите на вкладку Projects и выберите MDI Application). Откроется диалоговое окно, в котором вы должны указать проекта и нажать ОК. Delphi создаст не просто заготовку, а «действующую модель» MDI-приложения – текстового редактора, которую можно сразу же собрать и запустить. Мы ее только немного подправим. Напомню, что все дочерние окна, в которых во время работы приложения открываются документы, являются объектами класса TMDChild. Этот класс объявлен и реализован в файле CHILDWIN.PAS, автоматически созданном Delphi в рамках проекта MDI. Чтобы открыть этот файл в Редакторе кода , выберите в меню Delphi команду View->Units. Откроется диалоговое окно со списком модулей, составляющих приложение. Выберите из списка CHILDWIN и нажмит
... Читать дальше »
Напишем приложение, которое будет рисовать в своем главном окне отрезки случайного цвета, размера и расположения. При этом главный поток приложения будет ждать событий от пользователя, а рисованием займется второй поток. Поместите на форму компонент Image и три кнопки Button. В файле исходного кода Unit1 добавьте в секцию интерфейса объявление TDrawThread, реализующего второй поток. В этот класс добавьте приватные атрибуты для хранения координат концов текущего отрезка и его цвета. Из методов класса TDrawThread нам понадобится реализовать, разумеется, Execute, а также новый метод DrawLine, который будет рисовать отрезок в главном потоке. Имя объекта потока добавьте в секцию глобальных переменных после объявления переменной Form1 . Осталось обработать событие формы OnCreate и OnDestroy и события OnClick всех кнопок.