Let me start off by saying "nevermind" and thanks W3bbo for a much more concise and well thought out set of points than my dribble below. I would have hit "post" sooner but was interuppted by the practicalities of an actual life.
You're missing the point. "Thread safe" is just some techno buzzword to my customers. What matters to them is the cost to build a screen or implement feature X. Trying to explain that WPF is thread safe to them is academic at best. The fact is that having to understand WPF's threading nuances, manage locks, and be aware of what operations need to be run on the UI thread raises the cost of development.
You’re right about one thing: threading is extremely important stuff not to mess up but again that's not my point. WPF should make it easier for me to get the benefits that WPF has to offer without having to write, workaround, and be aware of threading so much. While some may say "think of all of the things you can do" you rightly frame it as "think of all of the things you can screw up."
I’m not suggesting we go back to the single threaded days of VB6. What I am saying is that the architects of this technology really need to take a broader view at the cost of this technology rather than how an individual feature helps us around a pinch-point. The components that comprise WPF need to work together more consistently and predictably rather than the trial and error that it is today.
"And finally completely change the skin by art designers using Expression."
Thanks for underscoring my sentiment that you need a dedicated UX person or persons to pull off a WPF project. What happens on smaller projects? Are they stuck using the crappy built-in designer? Do they acquiesce and write XAML instead. Do they give up weekend after weekend of family time in order to learn Blend? (No time during the week of course dodging WPF potholes).
Sure I could work around the problem of refreshing a collection view in the background many different ways but my point is I shouldn’t have to.
Guys I've spent the last year and a half working with WPF so I'm not totally foreign to the framework. On the contrary that’s why I know it has issues.
But alas I digress because in the end I’m just holding it wrong…