123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- using System;
- using System.Threading;
- namespace MultiConsole.Test
- {
- internal static class Program
- {
- private static void Main(string[] args)
- {
- //TestGetFromCurrentProcess();
- //TestCreateNewConsone();
- TestMultiConsole();
- }
- private static void TestMultiConsole()
- {
- Console.Title = "Multi console host";
- var rnd = new Random();
- var threads = new Thread[5];
- for (var i = 0; i < threads.Length; i++)
- {
- var localVarIndex = i;
- threads[localVarIndex] = new Thread(() =>
- {
- try
- {
- Console.WriteLine("Creating Console {0}...", localVarIndex);
- var con = ConsoleFactory.Create(string.Format("Sub Console {0}", localVarIndex));
- Console.WriteLine("Sub Console {0} Created.", localVarIndex);
- con.ForegroundColor = (ConsoleColor)rnd.Next(7,16);
- con.BackgroundColor = (ConsoleColor) rnd.Next(0, 7);
- int l1, l2;
- con.SetCursorPosition(l1 = rnd.Next(0,5), rnd.Next(0,5));
- Console.WriteLine("Sub Console {0} say hello...", localVarIndex);
- do
- {
- con.SetCursorPosition(l2 = rnd.Next(0,5), rnd.Next(0,5));
- } while (l1 == l2);
- con.WriteLine("Hello!");
- Console.WriteLine("Sub Console {0} said hello.", localVarIndex);
- Console.WriteLine("Sub Console {0} waiting input...", localVarIndex);
- con.SetCursorPosition(rnd.Next(0, 10), rnd.Next(0, 10));
- con.Write("Input something:");
- var input = con.ReadLine();
- Console.WriteLine("Sub Console {0} got input: {1}", localVarIndex, input);
- Console.WriteLine("Sub Console {0} shutting down...", localVarIndex);
- ConsoleFactory.CloseConsole(con);
- Console.WriteLine("Sub Console {0} Finished.", localVarIndex);
- }
- catch (Exception ex)
- {
- Console.WriteLine("Sub Console {0} Dropped -- {1}", localVarIndex, ex);
- }
- })
- {
- Name = string.Format("Sub Console {0} Thread", i),
- };
- }
- foreach (var thread in threads)
- {
- thread.Start();
- }
- foreach (var thread in threads)
- {
- thread.Join();
- }
- Console.WriteLine();
- Console.Write("Finished. press ENTER to exit.");
- Console.ReadLine();
- }
- private static void TestCreateNewConsone()
- {
- // ReSharper disable once InconsistentNaming
- var Console = ConsoleFactory.Create("The new console");
- Console.Write("OK, type some input,and ENTER:");
- var x = Console.ReadLine();
- Console.WriteLine("echo your input:{0}", x);
- Console.Write("Finished.");
- ConsoleFactory.CloseConsole(Console);
- }
- private static void TestGetFromCurrentProcess()
- {
- // ReSharper disable once InconsistentNaming
- var Console = ConsoleFactory.GetFromCurrentProcess();
- Console.Title = "GetFromCurrentProcess";
- Console.Write("OK, type some input,and ENTER:");
- var x = Console.ReadLine();
- Console.WriteLine("echo your input:{0}", x);
- Console.Write("Finished.");
- ConsoleFactory.CloseConsole(Console);
- }
- }
- }
|