title: Command CanExecute handlers conflicting with my threaded tasks
body: <p>I've started introducing some parallel programming into my WPF app to speed up the more intensive, repetitive tasks. It's going well, in that I'm seeing noticeable differences in execution time and perceived UI response.</p>
  
  <p>I've obviously been careful to ensure there is no concurrent access to the relevant data from my UI thread and these task threads.</p>
  
  <p>BUT - sometimes (not all the time), my program crashes, and it turns out that a command's CanExecute handler is trying to access the same data that is being processed in a parallel task. Or, conversely, my parallel task fails because the data is already being used by a CanExecute handler.</p>
  
  <p>Is there a recommended way to sort out this issue? Can I turn CanExecute checking off? Must I add a test to each and every CanExecute method?</p>
  
  <p>(On a side note, in looking at this issue, I'm extremely surprised at how often the CanExecute handlers get called! Part of me thinks, for performance reasons, it would be worth manually enabling and disabling the commands, but surely it's that sort of menial task that WPF is trying to make easier for us!)</p>