¿Es posible en .NET, usando C #, lograr un patrón asincrónico basado en eventos sin subprocesamiento múltiple?

Estoy sorprendido por el diseño arquitectónico deNode.js y me preguntaba si C # es capaz de tal diseño:

Asíncrono, basado en eventos / bucle de eventos, sin bloqueoI / O Sin subprocesos múltiples.