title: Blocking UI Thread in MVVM
body: <p>I have a basic question about MVVM practice ,it is not advisable to call model in setter of  a viewmodel property which is binded to a UI control.</p>
  
  <pre><code>public int Woo
  {
     get
      {
         return _Woo;
      }
      set
      {
        _Woo=model.SetWoo(value);
         NotifyPropertyChange("Woo");
      }
  }
  </code></pre>
  
  <p>Instead people advice to set the property in model and send an event to viewmodel to refresh its property with new value and eventually refresh the UI control also.Because the abovementioned code will block the UI control if model's method takes lot of time.</p>
  
  <p>My question is even if I send the event from model ,UI thread is still blocked till execution of its subscribed delegate finishes.So What is the difference between these two approaches and which one is correct?</p>