Sometimes I need to call WCF service in Silverlight and block UI until it returns. Sure I can do it in three steps:
Here's the point; you shouldn't do sync IO in Silverlight. Stop fighting it! Instead:
As it happens, I'm actively working on ways to make the async pattern more approachable (in particular with Silverlight in mind). Here's a first stab, but I have something better up my sleeve ;-p