public abstract void doCommand(CommThreadTest ctt);
public override void doCommand(CommThreadTest ctt) { ctt.message3(); }
public static void Main() { bool endThread = false; CommThreadTest ctt = new CommThreadTest(); Thread ctt_thread = new Thread(new ThreadStart(ctt.Run)); ctt_thread.Start(); string inp; // start the sub thread.. while (!endThread) { Console.WriteLine("MAIN thread({0}) working...",Thread.CurrentThread.GetHashCode()); Console.Write("input:"); inp = Console.ReadLine(); if (inp[0] == '1') { ctt.SendMessage(new CommThreadTest.ctt_message1()); } if (inp[0] == '2') { ctt.SendMessage(new CommThreadTest.ctt_message2()); } if (inp[0] == '3') { ctt.SendMessage(new CommThreadTest.ctt_message3()); } if (inp[0] == '4') { ctt.SendMessage(new CommThreadTest.ctt_message1()); ctt.SendMessage(new CommThreadTest.ctt_message2()); ctt.SendMessage(new CommThreadTest.ctt_message3()); } // 'stop'/'exit'/'quit' if (inp[0] == 's' || inp[0] == 'x' || inp[0] == 'q') { ctt.StopThread = true; endThread = true; } } while (ctt_thread.IsAlive) { Console.WriteLine("MAIN thread({0}) waiting on sub-thread...",Thread.CurrentThread.GetHashCode()); } }