I don't know AsyncPro, but a quick overview of CPortLaz code reveals the usage of a TThread and WaitForMultipleObjects which is very Windows-centric.
R#รป 2014-04-03 11:14 GMT+02:00 Michael Schnell <[email protected]>: > On 04/02/2014 10:53 PM, Roberto P. wrote: > >> I'd like to point out that CPortLaz is multithreaded >> > > Does it work similar to AsyncPro ? > > In fact, IMHO, it would be desirable to have a component that _internally_ > uses TThread to handle blocking ports (either using just a byte-FIDO - this > is what AsyncPro does - and/or allowing the user to implement a protocol > within the Thread's "Execute" ), and when some information from the port is > received (at least one byte or when the protocol handler issues a "ready"), > does an Event (aka queued callback) to the main thread. > > The main thread call of course needs to be "scheduled" using means such as > TThread.Queue or Application.QueueAsyncCall. (As at the time when AsyncPro > was released, Delphi did not provide either, AsyncPro uses Windows Messages > by directly accessing the Windows API, which happily is not necessary with > Lazarus). > > Unfortunately Thread -> Mainthread signaling is only easily provided in > Lazarus in the GUI based Widget Types. (NoGUI still needs an appropriate > enhancement.) But of course the user (or even a ComPort Unit) could provide > a usable Main Loop implementation. > > -Michael > > > -- > _______________________________________________ > Lazarus mailing list > [email protected] > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus >
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
