No, I call BeginInvoke or Invoke every time

OK. But WPF works pretty much the same. What's the downside then?