Программы для консольного процесса Administrator и процессов Writer - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Написать программы для консольного процесса Administrator и процессов Writer. Для моделирования передачи сообщений ввести специальные события, которые обозначают сообщение “+”, сообщение “-”, и конец сеанса для процесса Writer. Одновременно принимать и отправлять сообщения может только один процесс Writer, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов; Процесс Administrator:  запрашивает у пользователя количество процессов Writer, которые он должен запустить;  запускает заданное количество процессов Writer;  принимает сообщение от процесса Writer;  выводит на консоль сообщение;  принимает от каждого процесса Writer сообщение о завершении сеанса и выводит его на консоль в одной строке;  завершает свою работу. Процесс Writer:  запрашивает с консоли сообщения, и передает их (по одному) процессу Administrator;  передает сообщение о завершении сеанса процессу Administrator;  завершает свою работу.

Решение задачи: «Программы для консольного процесса Administrator и процессов Writer»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
 
namespace Writer
{   
    class Program
    {
        static void Main(string[] args)
        {
            Mutex mutex = Mutex.OpenExisting("Queue");
            mutex.WaitOne();
 
            EventWaitHandle starEvent = EventWaitHandle.OpenExisting("starEvent");
            EventWaitHandle dotEvent = EventWaitHandle.OpenExisting("dotEvent");
            EventWaitHandle exitEvent = EventWaitHandle.OpenExisting("exitEvent");
 
 
            while (true)
            {
                starEvent.Reset();
                dotEvent.Reset();
                exitEvent.Reset();
 
                string input = Console.ReadLine();
 
                if (input != "+" && input != "-")
                {
                    exitEvent.Set();
                    break;
                }
                else if (input == "+")
                {
                    starEvent.Set();
                }
                else if (input == "-")
                {
                    dotEvent.Set();
                }
            }
 
            mutex.ReleaseMutex();
            exitEvent.Reset();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы