public frmMinerDemo() { InitializeComponent(); mHighResTimer = new HighResTimer(); // m_AsyncWorker will be used to perform the AI work on a background thread. m_AsyncWorker = new BackgroundWorker(); m_AsyncWorker.WorkerReportsProgress = true; m_AsyncWorker.ProgressChanged += new ProgressChangedEventHandler(Thread_ProgressChanged); m_AsyncWorker.DoWork += new DoWorkEventHandler(Thread_DoWork); m_AsyncWorker.WorkerSupportsCancellation = true; // Just direct all debug output to our Message Writer Debug.Listeners.Clear(); Debug.Listeners.Add(new TextWriterTraceListener(DebugMessages.Instance)); groupBox1.ForeColor = mColourBob; groupBox2.ForeColor = mColourElsa; groupBox3.ForeColor = mColourBarFly; //create a miner Bob = new Miner((int)EntityName.ent_Miner_Bob); //create his wife Elsa = new MinersWife((int)EntityName.ent_Elsa); Joe = new BarFlyJoe((int)EntityName.ent_BarFly); //register them with the Message Dispatcher MessageDispatcher.Instance.RegisterEntity(Bob); MessageDispatcher.Instance.RegisterEntity(Elsa); MessageDispatcher.Instance.RegisterEntity(Joe); }