Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Cocina Casera Cocina PowerCOBOL
Cocina PowerCOBOL Rutinas y ejemplos codificados por nuestros foreros.
 
Respuesta
 
Herramientas

  #1
Antiguo 18 de abril de 2019, 21:40
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207
Windows Multihilo (Thread) en PowerCOBOL
4 Inactivo Inactivo

Puro Fujitsu COBOL.

El código mágico: (dejo el proyecto entero en adjuntos)

IMPORTANTE: si haces DISPLAY, tienes que hacer el primero en el Thread el Form, luego haces el resto en el nuevo Thread.

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  RESP                       PIC S9(9) COMP-5.
  5.  01  lpStartAddress             PROCEDURE-POINTER.
  6.  01  R-lpStartAddress REDEFINES lpStartAddress PIC 9(9) COMP-5.
  7.  01  lpParameter                PIC 9(9) COMP-5.
  8.  01  lpThreadId                 PIC 9(9) COMP-5 VALUE 0.
  9.  
  10.  01  CAMPO       PIC X(20) IS EXTERNAL.
  11.  PROCEDURE       DIVISION.
  12.      
  13.      DISPLAY "Vamos allá..."
  14.      
  15.      MOVE "Hola desde el Form!" TO CAMPO
  16.      
  17.      MOVE POW-FALSE TO "Enabled" OF CmCommand1
  18.      
  19.      SET lpStartAddress TO ENTRY "RUTINA@0"
  20.          
  21.      *> Kernel32.lib
  22.      CALL "CreateThread" WITH STDCALL USING BY VALUE 0
  23.                                             BY VALUE 0
  24.                                             BY VALUE R-lpStartAddress
  25.                                             BY REFERENCE lpParameter
  26.                                             BY VALUE 0
  27.                                             BY REFERENCE lpThreadId
  28.                                             RETURNING RESP
  29.                                            
  30.      IF  RESP = ZEROS
  31.          CALL "GetLastError" WITH STDCALL RETURNING RESP
  32.          
  33.          DISPLAY "ERROR CreateThread, RC: " RESP            
  34.          
  35.          EXIT PROGRAM
  36.      END-IF

Código COBOL:
  1.  IDENTIFICATION DIVISION.
  2.  PROGRAM-ID. "RUTINA".
  3.  
  4.  DATA DIVISION.
  5.  WORKING-STORAGE SECTION.
  6.  01  CAMPO       PIC X(20) IS EXTERNAL.
  7.  PROCEDURE DIVISION WITH STDCALL LINKAGE.
  8.  
  9.      PERFORM 10 TIMES
  10.          DISPLAY "¡¡¡Este es un nuevo Thread!!! Valor recibido: " CAMPO
  11.      
  12.          CALL "Sleep" WITH STDCALL USING BY VALUE 1000
  13.      END-PERFORM
  14.      
  15.      DISPLAY "ADIÓS"
  16.      
  17.      CALL "Sleep" WITH STDCALL USING BY VALUE 1000
  18.      
  19.      GOBACK
  20.      .
  21.  
  22.  END PROGRAM "RUTINA".
Archivos Adjuntos
Tipo de Archivo: zip THREAD.zip (33,7 KB)Descargas: 148



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:55.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.