Thanks for the link to the tutorial, I'll have to look into that! I have kind of a mess of things that runs through this whole sequential list checking all these different timings to see what needs to be done.. if all the things that required different timings were each in their own thread it would simplify things greatly
James -----Original Message----- From: fpc-pascal <fpc-pascal-boun...@lists.freepascal.org> On Behalf Of Jean SUZINEAU Sent: Friday, August 16, 2019 1:34 PM To: fpc-pascal@lists.freepascal.org Subject: Re: [fpc-pascal] *** SPAM *** Re: USB Human Interface Devices 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. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal