Работа №8. Отображаемые файлы

Работа №5. Пуск потоков функциями API

Создать приложение, производящее вызов функций из 3-х разных плагинов сразу в 3-х отдельных потоках. Эти три потока обязаны иметь однообразный (общий) код, и запускаться функциями API CreateThread. Дополнительный параметр, передаваемый в эту функцию при разработке потока, должен определять какой плагин будет вызываться в каждом из 3-х Работа №8. Отображаемые файлы потоков.

В приложении также должен быть сотворен с внедрением класса TThread дополнительный поток, который раз за секунду должен обновлять на дисплее скорость работы (вызовов плагинов за секунду) этих 3-х потоков. В приложении для этих 3-х потоков должна быть реализована возможность конфигурации их приоритета, в том числе и во время их Работа №8. Отображаемые файлы выполнения.

В функции плагинов передавать случайные либо любые неизменные характеристики.

Работа №6. Внедрение объектов синхронизации

Создать приложение, в каком производится последующий метод: два параллельных потока циклически делают вызов плагинов из библиотек dll (согласно варианта). Каждый поток употребляет собственный плагин. Результаты работы каждый поток помещает в общую очередь конечной длины. 3-ий Работа №8. Отображаемые файлы поток конфискует из очереди результаты работы плагинов и показывает их на дисплее в случайной форме. Схема взаимодействия потоков приведена на рисунке:

Очередь должна быть реализована с внедрением 2-ух объектов синхронизации Семафор (для потоков 1 и 2, и для потока 3). При заполнении очереди потоки 1 и 2 должны приостанавливаться функцией ожидания. При отсутствии результатов Работа №8. Отображаемые файлы в очереди поток 3 также должен приостанавливаться функцией ожидания. Участок кода помещения результатов в очередь должен быть оформлен с внедрением объекта синхронизации Критичная секция.

Потоки должны корректно завершаться при окончании приложения. Для этого в программке необходимо предугадать объект синхронизации Событие, меняющий свое состояние при окончании приложения. В приложении должна быть предусмотрена Работа №8. Отображаемые файлы возможность только однократного пуска через внедрение объекта синхронизации Мьютекс. В случае пуска 2-ой копии программки должно выводиться соответственное предупреждение.

Работа №7. Работа с файлами и временем функциями API

Видоизменять приложение их работы №1 последующим образом:

- в заголовке окна через отдельный поток должны отображаться текущее значение системного времени OC Windows и Работа №8. Отображаемые файлы серийный номер диска, на котором установлена ОС;

- результаты работы плагинов должны сохраняться в текстовый файл, всякий раз в новейшую строчку, добавляясь к уже записанным ранее;

- работа с этим текстовый файлом должна осуществляться с внедрением только функций API;

- этот текстовый файл должен располагаться в папке, созданной для хранения временных файлов Работа №8. Отображаемые файлы;

- в окне приложения расположить текстовый перечень (ListBox, Memo либо StringGrid), содержащий перечень имён файлов и их размеров, которые содержатся в папке для хранения временных файлов, поиск файлов для этого перечня должен быть реализован с внедрением API функций FindFirstFile, FindNextFile, FindClose;

- этот перечень должен обновляться автоматом, отслеживая изменение состава файлов в папке и Работа №8. Отображаемые файлы конфигурации размеров файлов;

- отслеживание конфигураций должно быть реализовано с внедрением функций Find(First/Next/Close)ChangeNotification либо ReadDirectoryChangesW.

Работа №8. Отображаемые файлы

Воплотить два приложения, взаимодействующие через общую область памяти. 1-ое должно после пуска создавать общую область памяти (проекцию файла подкачки) и ждать поступления данных. 2-ое приложение, с Работа №8. Отображаемые файлы графическим интерфейсом, должно обеспечивать ввод, вывод и передачу данных через общую область памяти. Подключение к имеющейся проекции файла подкачки во 2-м приложении должно осуществляться через функцию OpenFileMapping.

Метод работы приложений:

- запустить 1-ое приложение, которое перебегает в режим ожидания (1-ое приложение может быть как консольным, так с графическим интерфейсом либо вообщем без окна Работа №8. Отображаемые файлы);

- запустить 2-ое приложение, которое запрашивает ввод данных;

- после ввода данные помещаются в общую область памяти, и 1-ое приложение делает их обработку хоть каким (одним) произвольным плагином из первой работы;

- итог обработки первым приложением также помещается в общую область памяти;

- 2-ое приложение дожидается обработки данных и показывает итог Работа №8. Отображаемые файлы, переходя потом снова в режим ввода новых данных;

- процесс обработки данных может повторяться случайное число раз до окончания второго приложения;

- по окончании второго приложения, 1-ое должно автоматом завершаться.

Синхронизацию меж приложениями производить через внедрение объектов синхронизации с именами (к примеру, событий). Реализация работы должна позволять запускать случайное число копий второго Работа №8. Отображаемые файлы приложения. При всем этом вводить данные должно быть можно с хоть какой копии, а итог обработки должен автоматом отображаться во всех запущенных копиях второго приложения (использовать PulseEvent).

Также во 2-м приложении расположить кнопку, в какой выполнить вызов хоть какой случайной функции API c ошибкой и показать текстовое описание данной ошибки Работа №8. Отображаемые файлы с внедрением функции FormatMessage. Выбор композиции функции API и ошибки должен быть уникальным – не находиться в работах, сданных другими студентами.


rabochie-harakteristiki-asinhronnogo-dvigatelya.html
rabochie-i-vrednie-soprotivlenie.html
rabochie-momenti-na-semkah-filma.html