Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- namespace Lr
- {
- public class ArrayString
- {
- private string[] arrString { get; set; }
- public ArrayString(string[] arrString)
- {
- this.arrString = arrString;
- }
- public static string MaxString(string[] arrString)
- {
- int lenghth = 0;
- string maxString = "";
- for (int i = 0; i < arrString.Length; i++)
- {
- if (arrString[i].Length > lenghth)
- {
- lenghth = arrString[i].Length;
- maxString = arrString[i];
- }
- }
- return maxString;
- }
- public void ShowArray()
- {
- Console.WriteLine("Запущенно на: " + Thread.CurrentThread.ManagedThreadId);
- foreach (var item in arrString)
- {
- Console.WriteLine(" " + item + " ");
- }
- }
- public void RandomInputArray()
- {
- Random rnd = new Random();
- string temp = "";
- for (int i = 0; i < arrString.Length; i++)
- {
- for (int j = 0; j < rnd.Next(1, 30); j++)
- {
- temp += Convert.ToChar(rnd.Next('a', 'z')).ToString();
- }
- arrString[i] = temp;
- temp = "";
- }
- }
- }
- class Program
- {
- delegate void Action();
- static void Main(string[] args)
- {
- Console.Write("Вкажiть розмiр массива: ");
- int size = int.Parse(Console.ReadLine());
- string[] arrString = new string[size];
- ArrayString arrayString = new ArrayString(arrString);
- Func< string[], string> myFunc = ArrayString.MaxString;
- Action myActionInput = new Action(arrayString.RandomInputArray);
- myActionInput();
- Console.WriteLine("\nМасив рядкiв: ");
- Action myAction = new Action(arrayString.ShowArray);
- myAction();
- IAsyncResult resultObj = myFunc.BeginInvoke(arrString, new AsyncCallback(AsyncCompleted), "Асинхроннi виклики");
- Console.WriteLine("Продовжується робота метода Main");
- var res = myFunc.EndInvoke(resultObj);
- Console.WriteLine("Рядок максимальної довжни: {0}", res);
- Console.WriteLine("\nГоловний потiк: " + Thread.CurrentThread.ManagedThreadId);
- Console.ReadKey();
- }
- static void AsyncCompleted(IAsyncResult resObj)
- {
- string mes = (string)resObj.AsyncState;
- Console.WriteLine(mes);
- Console.WriteLine("Работа асинхронного делегата завершена!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment