Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

gb.Task - Tareas en segundo plano.
#1
Information 

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.
[-] Los siguientes 2 usuarios dicen gracias a tincho por este post:
  • jguardon, jsbsan
    ¡Gracias!
#2

Gracias Tincho.

“Nunca confíes en un ordenador que no puedas lanzar por la ventana” – Steve Wosniak
    ¡Gracias!
#3

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

De nada.
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)