Недавно дали программку на Дельфи. Там основная нить работает с интерфейсом, как обычно, а параллельная нить - с COM-портом работает в блокирующем режиме. Обмен данными - через группу глобальных переменных. Достаточно чистый и понятный код в результате.