Я уже некоторое время интенсивно работаю с шаблоном Model-View-ViewModel и очень рекомендую его. Хотя большинство статей об этом в Интернете прочно связывают его с WPF, нет никаких причин не использовать его с другими технологиями. Я использовал его против веб-службы, клиента WPF и командной строки (три «Представления», разделяющие нижние уровни).
Вот мое быстрое и грязное описание:
Шаблон состоит из трех уровней (сверху вниз): View (обычно с графическим интерфейсом, но на самом деле это любой внешний интерфейс), ViewModel (содержащий бизнес-логику и рабочий набор данных) и Model (доменные объекты и т. Д.). Каждый уровень связывается непосредственно с уровнем (ами) ниже и запускает события для уровня (ов) выше.
В земле .Net шаблон в значительной степени опирается на интерфейс INotifyPropertyChanged. Когда ваши структуры данных в Модели изменятся, они могут вызвать событие. ViewModel может обновлять свое состояние (состояние приложения) в ответ и запускать свои события. Затем представление можно обновить, чтобы отобразить новое состояние приложения.
Вот достойная статья:
http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Еще раз, эта статья ориентирована на WPF.
Я надеюсь, что этот ответ был на правильном уровне для вас. Если нет, может быть полезна дополнительная информация о проблеме. Вы не говорите о семафорах, очередях и темах?