# Class TCEFWorkScheduler

Description
Hierarchy
Fields
Methods
Properties

## Unit

uCEFWorkScheduler

## Declaration

`type TCEFWorkScheduler = class(TComponent)`

## Description

Implementation of an external message pump for VCL and LCL.

Read the GlobalCEFApp.OnScheduleMessagePumpWork documentation for all the details.

## Hierarchy

- TObject
- TPersistent
- TComponent
- TCEFWorkScheduler

## Overview

### Fields

Protected | `FThread: TCEFWorkSchedulerThread;`
Protected | `FQueueThread: TCEFWorkSchedulerQueueThread;`
Protected | `FDepleteWorkCycles: cardinal;`
Protected | `FDepleteWorkDelay: cardinal;`
Protected | `FDefaultInterval: integer;`
Protected | `FStopped: boolean;`
Protected | `FUseQueueThread: boolean;`
Protected | `FCompHandle: HWND;`
Protected | `FPriority: TThreadPriority;`

### Methods

Protected | `procedure CreateQueueThread;`
Protected | `procedure DestroyQueueThread;`
Protected | `procedure QueueThread_OnPulse(Sender : TObject; aDelay : integer);`
Protected | `procedure DestroyThread;`
Protected | `procedure DepleteWork;`
Protected | `procedure WndProc(var aMessage: TMessage);`
Protected | `procedure DeallocateWindowHandle;`
Protected | `procedure NextPulse(aInterval : integer);`
Protected | `procedure ScheduleWork(const delay_ms : int64);`
Protected | `procedure DoWork;`
Protected | `procedure DoMessageLoopWork;`
Protected | `procedure Initialize;`
Protected | `procedure SetDefaultInterval(aValue : integer);`
Protected | `procedure SetPriority(aValue : TThreadPriority);`
Protected | `procedure Thread_OnPulse(Sender : TObject);`
Public | `constructor Create(AOwner: TComponent); override;`
Public | `constructor CreateDelayed;`
Public | `destructor Destroy; override;`
Public | `procedure ScheduleMessagePumpWork(const delay_ms : int64);`
Public | `procedure StopScheduler;`
Public | `procedure CreateThread;`

### Properties

Published | `property Priority : TThreadPriority read FPriority write SetPriority default tpNormal;`
Published | `property DefaultInterval : integer read FDefaultInterval write SetDefaultInterval default CEF_TIMER_MAXDELAY;`
Published | `property DepleteWorkCycles : cardinal read FDepleteWorkCycles write FDepleteWorkCycles default CEF_TIMER_DEPLETEWORK_CYCLES;`
Published | `property DepleteWorkDelay : cardinal read FDepleteWorkDelay write FDepleteWorkDelay default CEF_TIMER_DEPLETEWORK_DELAY;`
Published | `property UseQueueThread : boolean read FUseQueueThread write FUseQueueThread default False;`

## Description

### Fields

Protected | `FThread: TCEFWorkSchedulerThread;`
This item has no description.

Protected | `FQueueThread: TCEFWorkSchedulerQueueThread;`
This item has no description.

Protected | `FDepleteWorkCycles: cardinal;`
This item has no description.

Protected | `FDepleteWorkDelay: cardinal;`
This item has no description.

Protected | `FDefaultInterval: integer;`
This item has no description.

Protected | `FStopped: boolean;`
This item has no description.

Protected | `FUseQueueThread: boolean;`
This item has no description.

Protected | `FCompHandle: HWND;`
This item has no description.

Protected | `FPriority: TThreadPriority;`
This item has no description.

### Methods

Protected | `procedure CreateQueueThread;`
This item has no description.

Protected | `procedure DestroyQueueThread;`
This item has no description.

Protected | `procedure QueueThread_OnPulse(Sender : TObject; aDelay : integer);`
This item has no description.

Protected | `procedure DestroyThread;`
This item has no description.

Protected | `procedure DepleteWork;`
This item has no description.

Protected | `procedure WndProc(var aMessage: TMessage);`
This item has no description.

Protected | `procedure DeallocateWindowHandle;`
This item has no description.

Protected | `procedure NextPulse(aInterval : integer);`
This item has no description.

Protected | `procedure ScheduleWork(const delay_ms : int64);`
This item has no description.

Protected | `procedure DoWork;`
This item has no description.

Protected | `procedure DoMessageLoopWork;`
This item has no description.

Protected | `procedure Initialize;`
This item has no description.

Protected | `procedure SetDefaultInterval(aValue : integer);`
This item has no description.

Protected | `procedure SetPriority(aValue : TThreadPriority);`
This item has no description.

Protected | `procedure Thread_OnPulse(Sender : TObject);`
This item has no description.

Public | `constructor Create(AOwner: TComponent); override;`
Full constructor of TCEFWorkScheduler. This constructor also creates the internal threads.

Public | `constructor CreateDelayed;`
Partial constructor of TCEFWorkScheduler. This constructor doesn't create any threads. Call TCEFWorkScheduler.CreateThread when necessary.

Public | `destructor Destroy; override;`
TCEFWorkScheduler destructor.

Public | `procedure ScheduleMessagePumpWork(const delay_ms : int64);`
Called from GlobalCEFApp.OnScheduleMessagePumpWork to schedule a GlobalCEFApp.DoMessageLoopWork call asynchronously to perform a single iteration of CEF message loop processing. ###### Parameters delay_ms Requested delay in milliseconds.

Public | `procedure StopScheduler;`
Stop the scheduler. This function must be called after the destruction of all the forms in the application.

Public | `procedure CreateThread;`
Creates all the internal threads used by TCEFWorkScheduler.

### Properties

Published | `property Priority : TThreadPriority read FPriority write SetPriority default tpNormal;`
Priority of TCEFWorkSchedulerThread in Windows.

Published | `property DefaultInterval : integer read FDefaultInterval write SetDefaultInterval default CEF_TIMER_MAXDELAY;`
Default interval in milliseconds to do the next GlobalCEFApp.DoMessageLoopWork call.

Published | `property DepleteWorkCycles : cardinal read FDepleteWorkCycles write FDepleteWorkCycles default CEF_TIMER_DEPLETEWORK_CYCLES;`
Number of cycles used to deplete the remaining messages in the work loop.

Published | `property DepleteWorkDelay : cardinal read FDepleteWorkDelay write FDepleteWorkDelay default CEF_TIMER_DEPLETEWORK_DELAY;`
Delay in milliseconds between the cycles used to deplete the remaining messages in the work loop.

Published | `property UseQueueThread : boolean read FUseQueueThread write FUseQueueThread default False;`
Use a custom queue thread instead of Windows messages or any other way to schedule the next pump work.

Generated by PasDoc 1.0.4.