/// <summary> /// Threads the menu. /// </summary> private static void ThreadMenu() { System.Console.WriteLine("Main thread id = " + System.Threading.Thread.CurrentThread.GetHashCode().ToString()); string str = ""; while (str != "x") { System.Console.WriteLine("\n---------------"); System.Console.WriteLine("MENU:"); System.Console.WriteLine("---------------"); System.Console.WriteLine(" x - eXit menu"); System.Console.WriteLine(" 1 - start"); System.Console.WriteLine(" 0 - abort"); System.Console.WriteLine(" 2 - suspend"); System.Console.WriteLine(" s - state"); System.Console.WriteLine("---------------\n"); try { str = System.Console.ReadLine(); switch (str) { case "1": th.Start(); break; case "0": th.Abort(); break; case "2": //th.Thread.s break; case "s": System.Console.WriteLine("Thread state = " + th.Thread.ThreadState.ToString()); System.Console.WriteLine("IsAlive = " + th.Thread.IsAlive.ToString()); System.Console.WriteLine("IsAborted = " + (((th.Thread.ThreadState & System.Threading.ThreadState.Aborted) > 0) ? true.ToString() : false.ToString())); break; } } catch (Exception ex) { System.Console.WriteLine("EXCEPTION = " + ex.Message + ", SOURCE = " + ex.StackTrace); } finally { } } }
public static void Main() { ConsoleRender cr = new ConsoleRender(); Console.WriteLine(cr.header()); do { string suspend = ""; try { do { Console.WriteLine("Press 'x' to pause."); ThreadHandler thread = new ThreadHandler(); thread.Start(); suspend = Console.ReadLine(); if (suspend == "x") { thread.Pause(); Console.WriteLine("Suspended!"); Console.WriteLine("Press 'y' to start again."); if (Console.ReadLine() == "y") { Console.Clear(); Console.WriteLine(cr.header()); Console.WriteLine("Started"); thread.Resume(); } } } while (suspend != "y" && suspend != "n"); } catch (Exception) { } } while (true); }