| **Navigation:**  [[templates.htm|Templates]] > Guide to all Templates > Extension Templates >====== Global Cooperative Threading Extension ====== | [[tpladosupport.htm|{{btn_prev_n.gif|Previous page}}]][[templates.htm|{{btn_home_n.gif|Return to chapter overview}}]][[tplextensionglobalmdisync.htm|{{btn_next_n.gif|Next page}}]] | | || 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.htm|Preemptive and Cooperative Thread Models]] topic. This template automatically includes a [[tplglobalcoop preemptive.htm|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. **Classes** 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.