https://github.com/vlados1kin/special-programming-platforms
Специальные платформы программирования (часть 1). Special programming platforms (part 1).
https://github.com/vlados1kin/special-programming-platforms
bsuir bsuir-labworks c-sharp dotnet dotnet-8 dotnet-core dotnet-framework spp
Last synced: about 2 months ago
JSON representation
Специальные платформы программирования (часть 1). Special programming platforms (part 1).
- Host: GitHub
- URL: https://github.com/vlados1kin/special-programming-platforms
- Owner: vlados1kin
- Created: 2025-02-09T13:16:24.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-03-08T18:50:28.000Z (3 months ago)
- Last Synced: 2025-03-08T19:30:47.097Z (3 months ago)
- Topics: bsuir, bsuir-labworks, c-sharp, dotnet, dotnet-8, dotnet-core, dotnet-framework, spp
- Language: C#
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Специальные платформы программирования
## **1. Лабораторная работа №1**
- Создать класс TaskQueue на языке C#, который реализует логику пула потоков. Создает указанное количество потоков в конструкторе, содержит очередь задач в виде делегатов без параметров, обеспечивает постановку в очередь и последующее выполнение делегатов с помощью метода NewTask и параметра TaskDelegate task.
- Создать консольное приложение на языке C#, которое принимает в качестве параметров командной строки путь к исходному и целевому каталогу на диске, выполняет копирование всех файлов из исходного в целевой каталог, также выполняет это же параллельно с помощью пула потоков, дожидается окончания всех операций копирования и выводит в консоль информацию о количестве скопированных файлов.## **2. Лабораторная работа №2**
- Создать класс Mutex на языке C#, который реализует двоичный семафор при помощи атомарной операции Interlocked.ComapreExchange. Обеспечивает блокировку и разблокировку двоичного семафора при помощи public методов Lock и Unlock.
- Создать класс OsHandle на языке C#, который обеспечивает автоматическое и принудительное освобождение заданного дескриптора ОС. Содержит свойство Handle, позволяющее установить и получить дескриптор. Реализует метод Finalize для автоматического освобождения дескриптора, а также интерфейс IDisposable для принудительного освобождения дескриптора.