is a symbol whose value is True if it is evaluated as part of a synchronous evaluation.
$SynchronousEvaluation
is a symbol whose value is True if it is evaluated as part of a synchronous evaluation.
Details
- A synchronous evaluation is generally triggered by controls in the front end. Controls that may generate synchronous evaluations include Button, EventHandler, and any control that takes a Dynamic value.
- Manipulate may trigger synchronous evaluations, depending upon the value of the SynchronousUpdating and SynchronousInitialization options.
- A synchronous evaluation is the same as a preemptive evaluation. Some controls, such as Button and EventHandler, support an option setting of Method->"Preemptive", which causes the control's evaluations to be synchronous.
- Synchronous evaluations halt the system while being evaluated. A typical use of $SynchronousEvaluation is to write code that should behave differently to prevent halting the system excessively.
Examples
open all close allBasic Examples (2)
Typical shift-return evaluations are asynchronous:
$SynchronousEvaluationEvaluations within Dynamic are synchronous by default:
Dynamic[$SynchronousEvaluation]Scope (2)
Evaluations within DynamicModule Initialization are synchronous by default:
DynamicModule[{init}, Dynamic[init], Initialization :> (init = $SynchronousEvaluation)]Manipulate has a different default for SynchronousUpdating:
Manipulate[Plot[Sin[a x], {x, 0, 10}, PlotLabel -> $SynchronousEvaluation], {a, 1, 5}]Properties & Relations (3)
By default, Button and similar constructs do synchronous evaluation:
Button["synchronous?", Print[$SynchronousEvaluation]]With the option Method->"Queued", the evaluation is done asynchronously:
Button["synchronous?", Print[$SynchronousEvaluation], Method -> "Queued"]Synchronous evaluation in Dynamic is controlled by the SynchronousUpdating option:
{Dynamic[$SynchronousEvaluation], Dynamic[$SynchronousEvaluation, SynchronousUpdating -> False]}The initialization of DynamicModule is controlled by the SynchronousInitialization option:
DynamicModule[{init}, Dynamic[init], Initialization :> (init = $SynchronousEvaluation), SynchronousInitialization -> False]Tech Notes
Related Guides
History
Text
Wolfram Research (2015), $SynchronousEvaluation, Wolfram Language function, https://reference.wolfram.com/language/ref/$SynchronousEvaluation.html.
CMS
Wolfram Language. 2015. "$SynchronousEvaluation." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/$SynchronousEvaluation.html.
APA
Wolfram Language. (2015). $SynchronousEvaluation. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/$SynchronousEvaluation.html
BibTeX
@misc{reference.wolfram_2026_$synchronousevaluation, author="Wolfram Research", title="{$SynchronousEvaluation}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/$SynchronousEvaluation.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_$synchronousevaluation, organization={Wolfram Research}, title={$SynchronousEvaluation}, year={2015}, url={https://reference.wolfram.com/language/ref/$SynchronousEvaluation.html}, note=[Accessed: 12-June-2026]}