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/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: gb.Task - Tareas en segundo plano. (/thread-317.html)



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:
Código:
Inherits Task

Public filePDF As String
Public dirOutput As String

Public Sub Main()

  Dim documentPDF As PdfDocument
  Dim page As Integer
  Dim fileImage As String
  Dim imageRam As Image

  If Exist(filePDF) Then
    documentPDF = New PdfDocument(filePDF)
    If Exist(dirOutput) Then
      For page = 0 To documentPDF.Max
        fileImage = dirOutput &/ Format(page, "0000") & ".png"
        If Exist(fileImage) = False Then
          imageRam = documentPDF[page].Render(, 150)
          imageRam.Save(fileImage, 80)
        Endif
      Next
    Endif
  Endif
End
Ejemplo de como "llamar" la clase desde el programa principal
Código:
Public Sub Form_Open()
  Dim back As Extract

  back = New Extract  ' Creacion de una nueva instancia de la clase en segundo plano
  back.filePDF = User.Home &/ "tmp.pdf" 'Asignación del primer parámetro
  back.dirOutput = "/tmp" 'Asignación del segundo parámetro
End
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.