- •Курсова робота
 - •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 для поточного екземпляра
 
