- •Курсова робота
- •6.050102 «Комп’ютерна інженерія»
- •InitializeLifetimeService () - Отримує об'єкт служби часу існування для управління політикою часу існування для цього примірника
- •Семафор
- •InitializeLifetimeService () - Отримує об'єкт служби часу існування для управління політикою часу існування для цього примірника.
- •Практична частина
ДНІПРОВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ІМЕНІ ОЛЕСЯ ГОНЧАРА
Кафедра електронних обчислювальних машин
Курсова робота
з дисципліни: «Системне програмне забезпечення»
на тему: «Створення багатопотокових додатків на платформі .NET»
Студентки 3 курсу групи КI-15-1
напряму підготовки:
6.050102 «Комп’ютерна інженерія»
Бурської А.В.
Керівник: Пономарьов І.В.
Кількість балів
Національна шкала
Оцінка ECTS
Члени комісії: Пономарьов І.В.
(підпис) (прізвище та ініціали) Матвєєва Н.О.
(підпис) (прізвище та ініціали)
Стародубцев О.Л.
(підпис) (прізвище та ініціали)
м. Дніпро, 2017 р.
ЗМІСТ
-
ПОСТАНОВКА ЗАДАЧІ…………………………………………….…2
-
ТЕОРЕТИЧНІ ВІДОМОСТІ……………………………………………3
-
Каталоги…………………………………………………………..3
-
Файли…………………………………………………...…………6
-
Потоки…………………………………………………………….8
-
Черга………………………………………………………………8
-
Семафор………………………………………………………….10
-
ПРАКТИЧНА ЧАСТИНА….…………………………………...……..13
-
ДОСЛІДЖЕННЯ РОБОТИ ПРОГРАМИ…………...………… .……21
-
ВИСНОВОК..…………………………………………………………..24
ПОСТАНОВКА ЗАДАЧІ
Загальні вимоги до проекту:
1. Проект на мові програмування C # Forms.
2. Програма повинна дозволяти змінювати розміри вікна і продовжувати при цьому працювати.
3. Використовувати потоки, процеси і обов'язково якийсь об'єкт синхронізації (функції очікування, події, м'ютекси, семафори).
4. Варіанти за списком в журналі.
Варіант №5
Програма переписує файли з однієї папки в іншу.
Задаються папки, кількість потоків. Видається кількість переписаних даних, час виконання.
ТЕОРЕТИЧНІ ВІДОМОСТІ
У С# є простір імен System.IO, в якому реалізовані всі необхідні класи для роботи з файлами та каталогами. Щоб підключити цей простір імен, необхідно на самому початку програми додати рядок using System.IO.
Каталоги
Для роботи з каталогами в просторі імен System.IO призначені два класи: Directory і DirectoryInfo.
Клас Directory надає ряд статичних методів для управління каталогами. Деякі з цих методів:
-
CreateDirectory (path): створює каталог за вказаною шляху path
-
Delete (path): видаляє каталог по зазначеному шляху path
-
Exists (path): визначає, чи існує каталог по зазначеному шляху path. Якщо існує, повертається true, якщо не існує, то false
-
GetDirectories (path): отримує список каталогів в каталозі path
-
GetFiles (path): отримує список файлів в каталозі path
-
Move (sourceDirName, destDirName): переміщує каталог
-
GetParent (path): отримання батьківського каталогу
Клас DirectoryInfo надає функціональність для створення, видалення, переміщення і інших операцій з каталогами. Багато в чому він схожий на Directory. Деякі з його властивостей і методів:
-
Create (): створює каталог
-
CreateSubdirectory (path): створює підкаталог за вказаною шляху path
-
Delete (): видаляє каталог
-
Властивість Exists: визначає, чи існує каталог
-
GetDirectories (): отримує список каталогів
-
GetFiles (): отримує список файлів
-
MoveTo (destDirName): переміщує каталог
-
Властивість Parent: отримання батьківського каталогу
-
Властивість Root: отримання кореневого каталогу
Для того щоб відкрити вікно з переліком каталогів та обрати потрібний каталог використаємо клас FolderBrowserDialog.
Методи класу FolderBrowserDialog:
-
CreateObjRef (Type) - Створює об'єкт, що містить всі необхідні відомості для створення проксі-сервера, що використовується для обміну даними з віддаленим об'єктом
-
Dispose () - Звільняє всі ресурси, зайняті модулем Component
-
Equals (Object) - Визначає, чи рівний заданий об'єкт поточного об'єкту
-
GetHashCode () - Служить хеш-функцією за замовчуванням
-
GetLifetimeService () - Витягує поточний об'єкт служби часу існування, який керує політикою часу існування даного екземпляра
-
GetType () - Повертає об'єкт Type для поточного екземпляра