A preemptive process is powerful as it allows your application to take full advantage of multi-core computers; consequently, its results in a faster global execution time and more connected users. A 4D process may be preemptive or not according to compilation options and the use of the language, as explained in this post.
In order to benefit from this mode as much as possible we are pleased to announce that more than twenty existing commands have been enhanced and can now be used inside preemptive processes.
Most of them are about picture manipulation:
- 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
And others are more global, and are certainly widely used in your existing applications:
- Current user
- GET TEXT KEYWORDS
- LAUNCH EXTERNAL PROCESS
- SET ENVIRONMENT VARIABLE
- OPEN URL
- Get localized string
- EXPORT STRUCTURE
- TRACE
If you use these commands inside processes compiled to run in cooperative mode, you may consider changing the settings in the method settings so as they can run in preemptive mode. Just remind that the commands that can be used in preemptive processes have the icon in the documentation. Already over 500 of them now !
The full list of preemptive commands is available here in the documentation.