Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач.docx
Скачиваний:
17
Добавлен:
25.03.2018
Размер:
327.58 Кб
Скачать

ДНІПРОВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ІМЕНІ ОЛЕСЯ ГОНЧАРА

Кафедра електронних обчислювальних машин

Курсова робота

з дисципліни: «Системне програмне забезпечення»

на тему: «Створення багатопотокових додатків на платформі .NET»

Студентки 3 курсу групи КI-15-1

напряму підготовки:

6.050102 «Комп’ютерна інженерія»

Бурської А.В.

Керівник: Пономарьов І.В.

Кількість балів

Національна шкала

Оцінка ECTS

Члени комісії: Пономарьов І.В.

(підпис) (прізвище та ініціали) Матвєєва Н.О.

(підпис) (прізвище та ініціали)

Стародубцев О.Л.

(підпис) (прізвище та ініціали)

м. Дніпро, 2017 р.

ЗМІСТ

  1. ПОСТАНОВКА ЗАДАЧІ…………………………………………….…2

  2. ТЕОРЕТИЧНІ ВІДОМОСТІ……………………………………………3

  • Каталоги…………………………………………………………..3

  • Файли…………………………………………………...…………6

  • Потоки…………………………………………………………….8

  • Черга………………………………………………………………8

  • Семафор………………………………………………………….10

  1. ПРАКТИЧНА ЧАСТИНА….…………………………………...……..13

  2. ДОСЛІДЖЕННЯ РОБОТИ ПРОГРАМИ…………...………… .……21

  3. ВИСНОВОК..…………………………………………………………..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 для поточного екземпляра