Initializes a new thread for a client connection task in the scheduler.
function NewThread: TIdThreadWithTask; override;
The return value for the method is a TIdThreadWithTask instance that represents the thread created for the client connection executable task in the scheduler, or Nil when a thread cannot be created.
NewThread calls the inherited NewThread method to initialize the thread for the scheduler.
NewThread uses the value in MaxThreads to determine is a limit is imposed on the number threads allowed in the thread-based scheduler. When MaxThreads contains a positive non-zero value, the number of active yarns in ActiveYarns is checked to ensure that new thread would not exceed the limit. If the number of TIdYarn instances in ActiveYarns would exceed the value in MaxThreads, an EIdSchedulerMaxThreadsExceeded is raised.
NewThread uses the value in ThreadPriority to determine if the thread priority for the new thread should be adjusted. When ThreadPriority contains a value other than tpNormal, SetThreadPriority is called to adjust the preference given to the thread during pre-emptive scheduling by the operating system.
NewThread also sets the value in FreeOnTerminate to True.
Use StartYarn to begin execution of the thread for a client connections' executable task.
Use TerminateYarn to halt execution of the thread for a client connections' executable task.
Copyright © 1993-2006, Chad Z. Hower (aka Kudzu) and the Indy Pit Crew. All rights reserved.
Post feedback to the Indy Docs Newsgroup.