title: async /await for methods in wpf aplication
body: <p>I have such question. For example I create dynamically custom userControl using mvvm pattern. So I've sended a command to create an userControl. So creation looks like </p>
  
  <pre><code>private async Task&lt;bool&gt; OnAddUserControl1(List&lt;ALV_VM_ADWERT&gt; control)
  {
      try
      {
          _cancellationTokenSource = new CancellationTokenSource();
          var userControl = _userControlsContainer.CreateUserControl1(control);
  
          var task1 = Task.Factory.StartNew(() =&gt;
          {
              userControl.ViewModel.InOperationEvent += OnUsercontrolInOperationChanged;
              userControl.ViewModel.ValueTypeChangedEvent += OnValueTypeChanged;
              userControl.ViewModel.SetExpandableName += OnSetExpandableName;
          }, _cancellationTokenSource.Token, TaskCreationOptions.AttachedToParent, TaskScheduler.FromCurrentSynchronizationContext());
  
          var task2 = Task.Factory.StartNew(() =&gt; FinalCreatingStep(userControl, control[0].RAUMNAME.Trim()), _cancellationTokenSource.Token, TaskCreationOptions.AttachedToParent, TaskScheduler.FromCurrentSynchronizationContext());
          await Task.WhenAll(task1, task2);
          return true;
      }
      catch (Exception)
      {
          return false;
      }                
  }
  </code></pre>
  
  <p>and my question is - does it make sence to create child tasks, or it is better to have code without child tasks? And if the answer is yes, then should I make all methods async? If not, what methods I should not make async?</p>