NAct is an actors framework for .NET which takes a really easy-to-use approach. (Disclaimer: I wrote it)
The message passing between two actors is just a method call between two objects. You have to make sure that all method arguments are immutable, and it will be thread-safe.
It works by wrapping your objects in a proxy that deals with the thread switching. All the normal .NET features, particularly events, are dealt with correctly, so you can write normal code and thread marshalling will happen on its own.
There's even a branch with support for C# 5 async/await.