Vla_DOS

Untitled

Sep 9th, 2022 (edited)
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.93 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace Lr
  5. {
  6.  
  7.     public class ArrayString
  8.     {
  9.         private string[] arrString { get; set; }
  10.  
  11.         public ArrayString(string[] arrString)
  12.         {
  13.             this.arrString = arrString;
  14.         }
  15.  
  16.         public static string MaxString(string[] arrString)
  17.         {
  18.             int lenghth = 0;
  19.             string maxString = "";
  20.             for (int i = 0; i < arrString.Length; i++)
  21.             {
  22.                 if (arrString[i].Length > lenghth)
  23.                 {
  24.                     lenghth = arrString[i].Length;
  25.                     maxString = arrString[i];
  26.                 }
  27.             }
  28.             return maxString;
  29.         }
  30.  
  31.         public void ShowArray()
  32.         {
  33.             Console.WriteLine("Запущенно на: " + Thread.CurrentThread.ManagedThreadId);
  34.             foreach (var item in arrString)
  35.             {
  36.                 Console.WriteLine(" " + item + " ");
  37.             }
  38.         }
  39.  
  40.         public void RandomInputArray()
  41.         {
  42.             Random rnd = new Random();
  43.             string temp = "";
  44.             for (int i = 0; i < arrString.Length; i++)
  45.             {
  46.                 for (int j = 0; j < rnd.Next(1, 30); j++)
  47.                 {
  48.                     temp += Convert.ToChar(rnd.Next('a', 'z')).ToString();
  49.                 }
  50.                 arrString[i] = temp;
  51.                 temp = "";
  52.             }
  53.         }
  54.     }
  55.  
  56.     class Program
  57.     {
  58.         delegate void Action();
  59.  
  60.         static void Main(string[] args)
  61.         {
  62.             Console.Write("Вкажiть розмiр массива: ");
  63.             int size = int.Parse(Console.ReadLine());
  64.             string[] arrString = new string[size];
  65.  
  66.             ArrayString arrayString = new ArrayString(arrString);
  67.             Func< string[], string> myFunc = ArrayString.MaxString;
  68.  
  69.             Action myActionInput = new Action(arrayString.RandomInputArray);
  70.             myActionInput();
  71.  
  72.             Console.WriteLine("\nМасив рядкiв: ");
  73.             Action myAction = new Action(arrayString.ShowArray);
  74.             myAction();
  75.  
  76.             IAsyncResult resultObj = myFunc.BeginInvoke(arrString, new AsyncCallback(AsyncCompleted), "Асинхроннi виклики");
  77.  
  78.             Console.WriteLine("Продовжується робота метода Main");
  79.  
  80.             var res = myFunc.EndInvoke(resultObj);
  81.  
  82.             Console.WriteLine("Рядок максимальної довжни: {0}", res);
  83.  
  84.             Console.WriteLine("\nГоловний потiк: " + Thread.CurrentThread.ManagedThreadId);
  85.  
  86.  
  87.             Console.ReadKey();
  88.         }
  89.  
  90.         static void AsyncCompleted(IAsyncResult resObj)
  91.         {
  92.             string mes = (string)resObj.AsyncState;
  93.             Console.WriteLine(mes);
  94.             Console.WriteLine("Работа асинхронного делегата завершена!");
  95.         }
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment