|Navigation: Templates > Guide to all Templates > Extension Templates >====== Global Cooperative Threading Extension ======
The options for this extension are made up of a single check box.
Enable Global Cooperative Threading
Check this box to switch your application to use a cooperative threading model in place of the preemptive model.
More information on these models (including advantages and disadvantages) can be found in the Preemptive and Cooperative Thread Models topic.
This template automatically includes a Preemptive Procedure Extension in all procedures defined in your application. This allows you exact and convenient control over each procedure's thread models.
For example, if the majority of procedures will need to use the cooperative thread model, check the global option, and use the Preemptive Procedure Extension to enable the few exceptions. On the contrary, you can turn off the Global Cooperative Threading model, which makes all procedures preemptive by default, and enable Cooperative Threading by turning off the individual procedure's Preemptive Procedure Extension.
The Cooperative Threading model uses the default ThreadLocker and CooperationClass classes. If you wish to include a different set of classes to use in place of these defaults, enter the new name in the prompts provided, or press the appropriate ThreadLocker and CooperationClass buttons to override the default classes behavior.