IRONSOFTWAREHOME
SII AEAT: Procesamiento Paralelo de Facturas con QR por Lotes
using IronBarCode;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

List<string> imagePaths = new List<string>() { "sample_a.png", "sample_b.png" };

// Barcode reading options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Set Max threads to 4
    Multithreaded = true,
    MaxParallelThreads = 4,
};

// Read barcode with multithreaded enabled
BarcodeResults results = BarcodeReader.Read(imagePaths, options);

Imports IronBarCode
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks

Dim imagePaths As New List(Of String)() From {"sample_a.png", "sample_b.png"}

' Barcode reading options
Dim options As New BarcodeReaderOptions() With {
    .Multithreaded = True,
    .MaxParallelThreads = 4
}

' Read barcode with multithreaded enabled
Dim results As BarcodeResults = BarcodeReader.Read(imagePaths, options)
NuGet Download
PM > Install-Package BarCode
SII AEAT: Procesamiento Paralelo de Facturas con QR por Lotes

SII AEAT: Procesamiento Paralelo de Facturas con QR por Lotes

Las empresas españolas sujetas al SII (Suministro Inmediato de Información) están obligadas a remitir los datos de sus facturas a la AEAT en un plazo máximo de cuatro días desde su emisión o recepción. En escenarios de gran volumen —almacenes logísticos, distribuidores mayoristas o gestorías que procesan miles de facturas diarias con código QR— el procesamiento secuencial resulta inviable dentro de ese margen temporal. El uso de hilos paralelos con MaxParallelThreads permite a la aplicación procesar varias imágenes simultáneamente, reduciendo significativamente el tiempo total de ejecución y garantizando el cumplimiento del plazo SII.

El procesamiento secuencial de grandes lotes de documentos o imágenes puede llevar mucho tiempo y crear cuellos de botella en aplicaciones de gran volumen. El uso de hilos paralelos permite a la aplicación procesar varias imágenes simultáneamente, lo que reduce significativamente el tiempo total de ejecución. En este ejemplo de código, demostraremos cómo configurar IronBarcode para utilizar subprocesos múltiples para una lectura de códigos de barras por lotes más rápida.

Guía de 5 pasos para usar hilos paralelos para leer códigos de barras

  • using IronBarCode;
  • using System.Threading.Tasks;
  • List<string> imagePaths = new List<string>() { "sample_a.png", "sample_b.png" };
  • BarcodeReaderOptions options = new BarcodeReaderOptions(){ Multithreaded = true, MaxParallelThreads = 4 };
  • BarcodeResults results = BarcodeReader.Read(imagePaths, options);

Explicación del código

Primero, se importan la biblioteca IronBarcode y el namespace de threading, y se define un List<string> que contiene las rutas de archivo de las imágenes a procesar. En el ejemplo anterior, "sample_a.png" y "sample_b.png" están preparados para ser escaneados.

Luego, se instancia un objeto BarcodeReaderOptions para configurar el comportamiento de escaneo. Multithreaded Adicionalmente, la propiedad ParallelProcessing se establece en true para habilitar el procesamiento paralelo. Multithreaded La propiedad MaxDegreeOfParallelism también se establece en 4, instruyendo al lector a usar hasta 4 hilos simultáneos mientras se equilibra el rendimiento con el uso de recursos del sistema. MaxParallelThreads MaxParallelThreads Read BarcodeReader.Read

Finalmente, se llama a ReadBarcodes, pasando tanto la lista de rutas de imagen como las opciones configuradas para recuperar el BarcodeResults.

Procesamiento paralelo para el cumplimiento SII y declaraciones AEAT

En un flujo de trabajo SII-compatible, el procesador de facturas recibe un directorio de imágenes escaneadas de facturas recibidas, cada una con un código QR AEAT que contiene la URL de verificación de la VERI*FACTU. El siguiente patrón ilustra cómo dimensionar correctamente MaxParallelThreads para este caso de uso:

  • Servidores de 4 núcleos (entornos de desarrollo o pymes): MaxParallelThreads = 4 ofrece un procesamiento eficiente sin saturar el sistema.
  • Servidores de 8-16 núcleos (grandes empresas con obligación SII): valores entre 8 y 12 permiten procesar varios miles de facturas por hora, cumpliendo el plazo de cuatro días de la AEAT.
  • Entornos en la nube (Azure App Service, AWS EC2): ajuste MaxParallelThreads según el número de vCPU disponibles para maximizar el rendimiento sin incurrir en costes innecesarios.

Para empresas del País Vasco que también emiten recibos bajo TicketBAI (aplicable en Bizkaia, Gipuzkoa y Araba), el mismo procesador paralelo puede reutilizarse para leer los QR de TicketBAI junto con los QR de la AEAT, unificando el flujo de verificación en un único proceso de alto rendimiento.

Una vez extraída la URL de verificación de cada QR, el sistema puede encolar las llamadas a sede.agenciatributaria.gob.es para confirmar la validez del registro VERI*FACTU antes de archivar el documento, todo dentro de los márgenes temporales exigidos por la normativa española.

Aprende a establecer el máximo de hilos paralelos con IronBarcode

¿Listo para empezar?

Nuget Downloads 2,422,100Versión:2026.9recién lanzado

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta