public void Sync(Model.Prestashop.idorder Order) { this.Semaphore.WaitOne(); try { Model.Prestashop.PsOrdersRepository PsOrdersRepository = new Model.Prestashop.PsOrdersRepository(); Model.Prestashop.PsOrders PsOrders = PsOrdersRepository.ReadOrder((int)Order.id_order); Core.Sync.SynchronisationCommande SynchronisationCommande = new Core.Sync.SynchronisationCommande(); SynchronisationCommande.ExecLocalToDistant(PsOrders, PsOrdersRepository); PsOrders = null; PsOrdersRepository = null; } catch (Exception ex) { Core.Error.SendMailError(ex.ToString()); } lock (this) { this.CurrentCount += 1; } this.ReportProgress(this.CurrentCount * 100 / this.ListCount); this.Semaphore.Release(); }