Un processo preemptive è potente perché consente all’applicazione di sfruttare appieno i computer multi-core; di conseguenza, si traduce in un tempo di esecuzione globale più veloce e in un maggior numero di utenti connessi. Un processo 4D può essere preemptive o meno a seconda delle opzioni di compilazione e dell’uso del linguaggio, come spiegato in questo post.
Per trarre il massimo vantaggio da questa modalità, siamo lieti di annunciare che più di venti comandi esistenti sono stati migliorati e possono ora essere utilizzati all’interno di processi preemptive.
La maggior parte di essi riguarda la manipolazione delle immagini:
- PICTURE TO BLOB
- BLOB TO PICTURE
- CREATE THUMBNAIL
- CONVERT PICTURE
- Picture Size
- READ PICTURE FILE
- WRITE PICTURE FILE
- PICTURE CODEC LIST
- PICTURE PROPERTIES
- GET PICTURE FORMATS
- COMBINE PICTURES
- SET PICTURE FILE NAME
- GET PICTURE FILE NAME
- GET PICTURE METADATA
- SET PICTURE METADATA
- GET PICTURE KEYWORDS
Altri invece sono più globali e sono sicuramente molto utilizzati nelle applicazioni esistenti:
- Current user
- GET TEXT KEYWORDS
- LAUNCH EXTERNAL PROCESS
- SET ENVIRONMENT VARIABLE
- OPEN URL
- Get localized string
- EXPORT STRUCTURE
- TRACE
Se utilizzate questi comandi all’interno di processi compilati per essere eseguiti in modalità cooperativa, potete prendere in considerazione la possibilità di modificare le impostazioni del metodo in modo che possano essere eseguiti in modalità preemptive. Ricordate che i comandi che possono essere usati nei processi con preemptive hanno l’icona nella documentazione. Sono già più di 500!
L’elenco completo dei comandi di preemptive è disponibile qui nella documentazione.