I think the fact that BeginInvoke/Invoke/EndInvoke just work is enough for most people. It know it has been enough for me. I didn't even question why it worked, though I did know it was using the message pump, just not exactly how it was using the message...