уктивність розробок [2]. # Дозволяє використовувати типізовані, розширювані метадані, які можуть бути прикріплені до об'єкта. Архітектурою проекту можуть визначатися локальні атрибути, які будуть пов'язані з будь-якими елементами мови - класами, інтерфейсами і т.д. Розробник може програмно перевірити атрибути якого-небудь елемента. Це істотно спрощує роботу, наприклад, замість того щоб писати автоматизований інструмент, який буде перевіряти кожен клас або інтерфейс, на те, чи є він дійсно частиною абстрактного бізнес об'єкта, можна просто скористатися повідомленнями заснованими на визначених у об'єкті локальних атрибутах [5]. #, будучи останнім з широко поширених мов програмування, повинен увібрати в себе весь наявний досвід і увібрати кращі сторони існуючих мов програмування, при цьому будучи спеціально створеним для роботи в.NET. Сама архітектура.NET продиктувала йому (як і багатьом іншим мовам, якими можна писати под.NET) об'єктно-орієнтовану спрямованість. Звичайно, це не є правилом, можливе створення компіляторів навіть функціональних мов по.NET, на цю тему існують спеціальні роботи [3].
У C # була уніфікована система типів, тепер можна розглядати кожен тип як об'єкт. Об'єкти зібрані в простори імен (namespaces), які дозволяють програмно звертатися до чого-небудь. Це означає що замість списку включаються файлів заголовків у своїй програмі потрібно написати які простори, де доступу до об'єктів і класам всередині них, розробник хоче використовувати. У C # вираз using дозволяє не писати кожен раз назву простору імен, коли використовується клас з нього. Наприклад, простір імен System містить декілька класів, у тому числі і Console [4].
Свій синтаксис C # в чому успадкував від C ++ і Java. Але разом з тим він є багато в чому новаторським - аттрібути, делегати та події, прекрасно вписані в загальну ідеологію мови, міцно зайняли місце в сердцах.NET - розробників. Їх введення дозволило застосовувати принципово нові прийоми програмування.
З речей, включених в специфікацію мови, але не є чисто «програмістську» необхідно відзначити можливість використання коментарів у форматі XML. Якщо коментарі відповідають спеціально описаної структурі, компілятор по ним може згенерувати єдиний XML-файл документації [6].
.2 Постановка завдання
У ході виконання даної курсової роботи необхідно виконати наступні завдання:
. Вивчити принципи створення багатопотокових додатків, способи синхронізації потоків, способи створення консольних додатків.
. Створити програму мовою C #. Результати оформити у вигляді таблиці.
. Реалізувати можливість отримувати текстові повідомлення про результати виконаних операцій.
Індивідуальне завдання згідно Варіанту №3 звучить наступним чином:
Розробити Windows Forms додаток, що запускає будь-який процес в системі, і може його завершити з видачею на екран відповідного повідомлення користувачеві.
.3 Алгоритм рішення задачі
Загальний алгоритм роботи програми для запуску нового процесу звучить наступним чином:
1) Якщо ім'я необхідного процесу введено вірно, переходимо до п. 3, інакше - до п. 2;
) Висновок повідомлення «Введіть ім'я процесу», переходимо до п. 1;
) Створюється новий об'єкт класу Process з ім'ям newProc;
) Запускається новий процес за допомогою методу Process. Start (s), де s - строкова змінна, в якій зберігається ім'я процесу;
) Виводиться повідомлення про запуск процесу;
) У змінну ProcID заноситься значення ID поточного процесу, для того, щоб потім з цього ID завершити цей процес.
Алгоритм роботи програми для завершення раніше запущеного процесу звучить наступним чином:
1) Створюється новий об'єкт класу Process з ім'ям newProc за допомогою методу Process. GetProcessById (ProcId), де ProcID - раніше збережений ідентифікатор запущеного процесу;
2) Викликається метод newProc. Kill (), який зупиняє даний процес;
) Викликається метод newProc. Close (), який звільняє всі ресурси, пов'язані з даним процесом;
) Виводиться повідомлення про завершення процесу.
Блок-схеми основних процедур запуску і зупинки процесу представлені в додатках А і Б відповідно.
2. Практична частина
.1 Рішення поставленої задачі в C #
Опис інтерфейсу програми в C #
Запускається додаток ...