title: Throwing two POCOs retrieved from EF context into a new thread task
body: <p>If I create a context on the main thread to retrieve two POCOs of the same type and throw those two pocos into a new thread so that I can map the properties would this be safe to do?</p>
  
  <pre><code>public class ViewModelContainer
  {
      private readonly IMappingService mappingService;
  
      public ViewModelContainer(IMappingService mappingService)
      {
         this.mappingService = mappingService;
         this.mainContext = GetNewContext();
         List&lt;MyPoco&gt; allMyPocos = mainContext.MyPocos.ToList();
      }
  
      public void MapBothPocos()
      {
         MyPoco sourcePoco = allMyPocos.FirstOrDefault(x =&gt; x.IsSourcePoco);
         var targetPocos = allMyPocos.Where(x =&gt; x.IsTargetPoco);
  
        Task.Factory.StartNew(() =&gt;
        {
           foreach (var target in targetPocos)             
               this.mappingService.LinkSourceToTarget(sourcePoco, target);
        });
          ^A LOT of mapping TO DO HERE!!!
      }
  }
  
  public class MappingService : IMappingService
  {
     public void LinkSourceToTarget(MyPoco source, MyPoco target)
     {  
           //THERES A FAIR AMOUNT OF LOGIC TO PREPARE THE SOURCE AND TARGET BEFORE THEY CAN BE MAPPED
           //Prepare...
           //some more prepare...
  
           //ok now lets map
           Mapper.Map(sourcePoco, targetPoco); //AutoMapper
  
     }
  
     //PLUS A LOT OF OTHER LOGIC WILL BE IN HERE. 
  }
  </code></pre>
  
  <p>I mainly want to do this so that I can put a accurate loading progress bar on the screen. If this is the wrong way to do this, is there a way to do this so that I can put a IsBusy indicator on the screen in my app? </p>