Comunidad Gambas-es
gb.Task - Tareas en segundo plano. - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forumdisplay.php?fid=3)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forumdisplay.php?fid=8)
+--- Tema: gb.Task - Tareas en segundo plano. (/showthread.php?tid=317)



gb.Task - Tareas en segundo plano. - tincho - 24-03-2021

Hola a todos.                          [Imagen: qfHcNAI.png]
Debido a la lentitud que la extracción de imágenes de un pdf confería a Control-Book decidí investigar el tema de las tareas en segundo plano que, como saben, están disponibles desde la versión 3.3. El resultado promete y hace mas "pro" la app.
Para usarla hay que crear una clase y luego instanciarla. Dentro de la clase tiene que haber un método Main sin parámetros. para enviarle parámetros a la clase se ponen variables globales públicas.
Ejemplo de lo que hay dentro de la clase:
GAMBAS
  1.  
  2. Public filePDF As String
  3. Public dirOutput As String
  4.  
  5. Public Sub Main()
  6.  
  7.   Dim documentPDF As PdfDocument
  8.   Dim page As Integer
  9.   Dim fileImage As String
  10.   Dim imageRam As Image
  11.  
  12.   If Exist(filePDF) Then
  13.     documentPDF = New PdfDocument(filePDF)
  14.     If Exist(dirOutput) Then
  15.       For page = 0 To documentPDF.Max
  16.         fileImage = dirOutput &/ Format(page, "0000") & ".png"
  17.         If Exist(fileImage) = False Then
  18.           imageRam = documentPDF[page].Render(, 150)
  19.           imageRam.Save(fileImage, 80)
  20.         Endif
  21.       Next
  22.     Endif


Ejemplo de como "llamar" la clase desde el programa principal
GAMBAS
  1. Public Sub Form_Open()
  2.   Dim back As Extract
  3.  
  4.   back = New Extract  ' Creacion de una nueva instancia de la clase en segundo plano
  5.   back.filePDF = User.Home &/ "tmp.pdf" 'Asignación del primer parámetro
  6.   back.dirOutput = "/tmp" 'Asignación del segundo parámetro


Espero que les resulte de utilidad.
Saludos.


RE: gb.Task - Tareas en segundo plano. - Shell - 24-03-2021

Gracias Tincho.


RE: gb.Task - Tareas en segundo plano. - tincho - 27-03-2021

(24-03-2021, 13:29)Shell escribió:  Gracias Tincho

De nada.