B-Arts DocumentationIndice generale

BTaskQueue - Esempi

BTaskQueue queue = new BTaskQueue(numberOfTaskExecuting: 3)
{
  TimeoutElaboration = 60_000,
  MaxRetryElaboration = 2
};

queue.AllTaskCompleted += (started, completed) =>
{
  TimeSpan duration = completed - started;
};

queue.AddTask(new ImportTask { Nome = "Customers", FilePath = customersPath });
queue.AddTask(new ImportTask { Nome = "Products", FilePath = productsPath });

await queue.ExecuteAsync();

Queue<BTaskWrapperBase> failed = queue.FailedTasks;

La coda limita la concorrenza con SemaphoreSlim e attende tutte le RunningTask. Le impostazioni globali di timeout e retry vengono copiate nel wrapper quando viene aggiunto. Per nuovo codice asincrono è la scelta predefinita rispetto alle code basate direttamente su Thread.