Esempio n. 1
0
        static void Main(string[] args)
        {
            // Задание 1
            Console.WriteLine($"Задание 1");
            foreach (Process proc in Process.GetProcesses())
            {
                Console.WriteLine($"Запущенный процесс имеет {proc.Id} - ID, " +
                                  $"{proc.ProcessName} - Имя, {proc.BasePriority} - Приоритет, " +
                                  $"{proc.Responding} - текущее состояние"
                                  );
            }

            // Задание 2
            Console.WriteLine($"Задание 2");
            AppDomain domain = AppDomain.CurrentDomain;

            Console.WriteLine($"Имя: {domain.FriendlyName}, Директория: {domain.BaseDirectory}");
            Console.WriteLine($"Все сборки:");
            foreach (Assembly el in domain.GetAssemblies())
            {
                Console.WriteLine($"Имя сборки: {el.GetName().Name}");
            }
            //создание и настройка домена ( не поддерживается на ОС Windows)
            //Assembly[] assembly = domain.GetAssemblies();
            //AppDomain newDomain = AppDomain.CreateDomain("NewDomain");//создаем новый домен
            //newDomain.Load(assembly[1].GetName().Name);//получаем имя сборки
            //AppDomain.Unload(newDomain);

            // Задание 3

            Thread thread = new Thread(new ParameterizedThreadStart(PrintSimple));

            thread.Priority = ThreadPriority.Lowest; //Свойство Priority хранит приоритет потока - значение перечисления ThreadPriority
            thread.Start(20);                        //метод старт запускает поток
            thread.Join();

            // Задание 4

            EvenCl ev = new EvenCl(20);

            Thread.Sleep(10);
            OddCl od = new OddCl(20);

            ev.Thread.Join();// join блокирует выполнение вызвавшего его потока до тех пор, пока не завершится поток, для которого был вызван данный метод
            od.Thread.Join();

            NewEven ne = new NewEven(20);

            Thread.Sleep(10);//Sleep останавливает поток на определенное количество миллисекунд
            NewOdd no = new NewOdd(20);

            ne.thr.Join();
            od.Thread.Join();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            // Задание 1
            Console.WriteLine($"Задание 1");
            foreach (Process proc in Process.GetProcesses())
            {
                Console.WriteLine($"Запущенный процесс имеет {proc.Id} - ID, " +
                                  $"{proc.ProcessName} - Имя, {proc.BasePriority} - Приоритет, " +
                                  $"{proc.Responding} - текущее состояние"
                                  );
            }

            // Задание 2
            Console.WriteLine($"Задание 2");
            AppDomain domain = AppDomain.CurrentDomain;

            Console.WriteLine($"Имя: {domain.FriendlyName}, Директория: {domain.BaseDirectory}");
            Console.WriteLine($"Все сборки:");
            foreach (Assembly el in domain.GetAssemblies())
            {
                Console.WriteLine($"Имя сборки: {el.GetName().Name}");
            }
            //создание и настройка домена ( не поддерживается на ОС Windows)
            //Assembly[] assembly = domain.GetAssemblies();
            //AppDomain newDomain = AppDomain.CreateDomain("NewDomain");//создаем новый домен
            //newDomain.Load(assembly[1].GetName().Name);//получаем имя сборки
            //AppDomain.Unload(newDomain);

            // Задание 3

            Thread thread = new Thread(new ParameterizedThreadStart(PrintSimple));

            thread.Priority = ThreadPriority.Lowest;
            thread.Start(20);
            thread.Join();

            // Задание 4

            EvenCl ev = new EvenCl(20);

            Thread.Sleep(10);
            OddCl od = new OddCl(20);

            ev.Thread.Join();
            od.Thread.Join();

            NewEven ne = new NewEven(20);

            Thread.Sleep(10);
            NewOdd no = new NewOdd(20);

            ne.thr.Join();
            od.Thread.Join();
        }
Esempio n. 3
0
    static void Main(string[] args)
    {
        TimerCallback timercallback = new TimerCallback(PrintTimer);
        Timer         timer         = new Timer(timercallback, 0, 0, 2000);
        var           allProc       = Process.GetProcesses();

        foreach (Process process in allProc)
        {
            Console.WriteLine("-----------------");
            Console.WriteLine("Proc ID: " + process.Id);
            Console.WriteLine("Name: " + process.ProcessName);
            Console.WriteLine("Priority: " + process.BasePriority);
            Console.WriteLine("Threads amount: " + process.Threads.Count);
        }
        AppDomain domain = AppDomain.CurrentDomain;

        Console.WriteLine(new string('_', 50));
        Console.WriteLine($"domain - {domain.FriendlyName} \nsetupInfo - {domain.SetupInformation.ConfigurationFile} ");
        Assembly[] assembly = domain.GetAssemblies();
        foreach (var ass in assembly)
        {
            Console.WriteLine(ass.GetName().Name);
        }
        AppDomain newDomain = AppDomain.CreateDomain("NewDomain");

        newDomain.Load(assembly[1].GetName().Name);

        AppDomain.Unload(newDomain);
        Thread thread = new Thread(new ParameterizedThreadStart(PrintSimple));

        thread.Priority = ThreadPriority.Lowest;
        thread.Start(20);

        EvenCl ev = new EvenCl(20);

        Thread.Sleep(10);
        OddCl od = new OddCl(20);

        ev.Thread.Join();
        od.Thread.Join();

        NewEven ne = new NewEven(20);

        Thread.Sleep(10);
        NewOdd no = new NewOdd(20);

        ne.thr.Join();
        od.Thread.Join();
    }