Как запретить запуск, более одной копии приложения?

Приветствую всех! Сегодня рассмотрим один пример из того множества как можно запретить использовать более одной копии своего приложения. Для этого воспользуемся примитивом Mutex, для межпроцессорной синхронизации. На первый взгляд все кажется сложным, и не понятным, но сейчас увидите как все просто. static Mutex mutex = new Mutex(false,»MyProg»); static void Main(string[] args) { mutex.WaitOne(); Console.WriteLine(«Защита»); Console.WriteLine(«Нажмите […]

C# Thread Потоки ч.3

Приветствую всех, сегодня поговорим о продолжении темы связанной с потоками, это часть 3.  Читать Потоки ч.1  Читать Потоки ч.2 Эта часть посвящается синхронизации потоков при помощи объектов ядра системы Windows. Thread Pool Пул потоков — это коллекция потоков, которые могут использоваться для выполнения нескольких задач в фоновом режиме. Пул потоков позволяет разгрузить главный поток для […]

Потоки ч.2

Приветствую всех, сегодня поговорим о продолжении темы связанной с потоками, это часть 2.  Читать Потоки ч.1 Различают две разновидности многозадачности: на основе процессов и на основе потоков. В связи с этим важно понимать отличия между ними. Процесс фактически представляет собой исполняемую программу. Поэтому многозадачность на основе процессов — это средство, благодаря которому на компьютере могут […]

Разберемся как передать параметры другим программа на C#

Приветствую всех, сегодня я покажу пример того как можно обойтись без bat файлов и cmd команд, при передачи параметров и команд программам.  Я как и многие из вас использовал bat файлы для передачи параметров и связки приложений. Допустим у нас имеется 2 приложения и им нужно передать какие нибудь аргументы вот пример таких программ: Программа […]

Как завершить процесс или программу через заданный интервал времени на C#

Приветствую всех сегодня я покажу как можно убивать процессы через определенное время. У многих новичков, да и любителей писать разные читы, программы шутки, возникает такой вопрос, а как все это реализовать? Есть множество способов, к примеру бесконечный цикл с помощью while(true)  происходит проверка условий запущен ли процесс — программа, и если да то завершить. Однако […]

Полиморфизм и AdHocPolimorfizm в C#

Приветствую всех! Сегодня поговорим о полиморфизме и рассмотрим ряд примеров и определений. А так же отличия полиморфизма от AdHoc полиморфизма. Полиморфизм относится к способности определять множество классов функционально разными, но одинаково названными методами или свойствами, которые попеременно могут использоваться кодом клиента во время выполнения. О полиморфизме часто говорят как о третьем базовом элементе объектно-ориентированного программирования, […]

Разбираемся с Garbage Collection в C#

Приветствую всех! Сегодня поговорим о сборщике мусора когда он начинает работать и что вообще он делает, и как его можно вызывать принудительно. Garbage Collection Специальный механизм, называемый сборщиком мусора (garbage collector), периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложением- то есть производит «сбор мусора». Сборка мусора была впервые применена Джоном Маккарти в […]

Разбираемся с Сериализацией в C#

Приветствую всех, сегодня поговорим о Серелизации объектов. Тема довольна сложная, но применяется практически в каждом большом проекте, особенно в игростроении. Постараюсь объяснить ключевые вопросы и рассмотрим примеры. Создавая объекты в приложении .NET Framework, вы, возможно, никогда не задумывались о том, как данные хранятся в памяти. Но когда требуется сохранять содержимое объекта в файле, передавать объект […]

Атрибуты в C#

Существует два типа атрибутов: Предопределенные атрибуты (идут в поставке FCL), и пользовательские атрибуты, создаваемые пользователем для добавления в код дополнительных сведений. С точки зрения разработчика оба типа имеют одинаковый синтаксис. Пользовательский атрибут представляет собой обычный класс, унаследованный от класса Attribute. Такой атрибут может быть использован для любого метода, свойства, класса или сборки при использовании следующего […]

Решения задачи с Ulearn

Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика «Сжатие» В этом задании вам нужно написать стрим, осуществляющий сжатие и восстановление информации. Бороться за высокое качество сжатия не обязательно: стрим будет тестироваться на байтовых последовательностях, состоящих из 2-4-кратных повторений одного и того же байта. Как и в предыдущем […]