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(); }
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(); }
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(); }