static void Main(string[] args) { ILogistica estoque = EstoqueFactory.Create(TipoEstoque.LGroup); estoque.BaixarEstoque(1, 1); ILogistica estoqueM = EstoqueFactory.Create(TipoEstoque.Magento); estoqueM.BaixarEstoque(2, 2); Console.ReadKey(); }
public void BaixarEstoqueComAltaDisponibilidade(int idProduto, int qtde) { Task.Run(() => { lock (_lock) { Console.WriteLine($"Estoque em fila"); _fila.Add(new KeyValuePair <int, int>(idProduto, qtde)); Thread.Sleep(1000); _estoque.BaixarEstoque(_fila.Keys.FirstOrDefault(), _fila[_fila.Keys.FirstOrDefault()]); _fila.Remove(1); Console.WriteLine($"Estoque em adicionado"); } }); }