private void HandleEnded(WorkUnit sender, WorkEventArgs e)
 {
     sender.Ended -= HandleEnded;
     if (_workUnits.Any(w => !w.Equals(sender) && !w.HasEnded))
     {
         return;
     }
     EndTransaction(_workUnits.All(w => w.IsComplete));
 }
 private void HandleEnded(WorkUnit sender, WorkEventArgs e)
 {
     sender.Ended -= HandleEnded;
     if (_workUnits.Any(w => !w.Equals(sender) && !w.HasEnded))
     {
         return;
     }
     EndTransaction(_workUnits.All(w => w.IsComplete));
 }