Ik heb een main applicatie. Binnen de main applicatie wordt een instantie van de THardwareHandling classe aangemaakt.
In de constructor van deze classe wordt vervolgens weer een THardwareInterruptHandling instantie aangemaakt. THardwareInterruptHandling is gebaseerd op TThread.
In de OnExecute van deze instantie wordt een blocking methode aangeroepen (die dus pas iets terug geeft als er een interrupt ontstaan is of dat de timeout verstreken is).
Stel nu dat er een hele lange timeout meegegeven wordt en dat er geen interrupt ontstaat. De thread staat dan dus in "blocking mode".
Nu moet de main applicatie afgesloten worden. De THardwareHandling instantie zal vervolgens weer vrijgegeven worden.
Maar hoe zit dat met de THardwareInterruptHandling klasse (die dus in blocking mode is). Ik neem aan dat je niet de instantie van deze classe met Free kan beeindigen?
In de constructor van deze classe wordt vervolgens weer een THardwareInterruptHandling instantie aangemaakt. THardwareInterruptHandling is gebaseerd op TThread.
In de OnExecute van deze instantie wordt een blocking methode aangeroepen (die dus pas iets terug geeft als er een interrupt ontstaan is of dat de timeout verstreken is).
Stel nu dat er een hele lange timeout meegegeven wordt en dat er geen interrupt ontstaat. De thread staat dan dus in "blocking mode".
Nu moet de main applicatie afgesloten worden. De THardwareHandling instantie zal vervolgens weer vrijgegeven worden.
Maar hoe zit dat met de THardwareInterruptHandling klasse (die dus in blocking mode is). Ik neem aan dat je niet de instantie van deze classe met Free kan beeindigen?