//these lines are used to run the state machine asynchronously: //private delegate void Dispatcher(qf4net.QEvent qe); //private delegate void FinishDelegate(); private void DispatchMessage(ReminderSignals signal) { ReminderEvent reminderEvent = new ReminderEvent(signal); Reminder.Instance.DispatchQ(reminderEvent); //these lines are used to run the state machine asynchronously: // Dispatcher d = new Dispatcher(Reminder.Instance.DispatchQ); // IAsyncResult ar = d.BeginInvoke(calcEvent, new AsyncCallback(Finished), d); }