[fpc-pascal] *** SPAM *** Re: USB Human Interface Devices
Jean SUZINEAU
Jean.Suzineau at wanadoo.fr
Fri Aug 16 19:34:01 CEST 2019
Le 16/08/2019 à 17:11, James Richters a écrit :
> Can I even do threads in a console program?
Yes, you can. I have in production some console code (worse: in a dll
called by a console program written in 4gl (4js Genero www.4js.com))
with threads which compile unmodified under Linux and Windows.
By writing a descendant of TThread it's relatively easy to write a
thread in FreePascal (
https://wiki.freepascal.org/Multithreaded_Application_Tutorial ).
From your (non main) thread you can execute a procedure in the main
thread by calling TThread.Synchronize.
From what I remember, the main problem in console is that you need to
call regularly CheckSynchronize() ( from unit Classes ) from your
program which run the main thread.
That will be simpler for you, in my case, I had to export from my dll a
pascal function calling CheckSynchronize() and call it regularly from
the 4gl program with a timer ...
As far as I remember, it works just with a queue, when you call
Synchronize you add a function call to the queue, and CheckSynchronize()
read the queue and do the actual call of your function.
More information about the fpc-pascal
mailing list