Jupp, natürlich all, auch die innerhalb des Hauptthreads.
Zitat:
System.TMonitor
Und den Namespace, weil die Idioten dieses TMonitor blind eingebaut hatten, nachdem es schon Jahrzehnte lang bereits ein anderes TMonitor gab/gibt, was aber was ganz anderes ist (Bildschirme).
Beim Syncronize und Queue mußt du nur alles in Threads
absichern rüberschieben, in den Hauptthread, was nicht im Hauptthread ist, dann das im Hauptthread ist ja bereits dort.
Und für Integer/Int64/Cardinal/UInt64/Word/LongBool und andere 2, 4 bzw. 8 Byte große "einfache" Typen, wie z.B. ENUMs, gibt es auch Funktionen aus
CPU-Ebene Systemebene,
wo beim Schreiben alle anderen Schreib- und Lesevorgänge gesperrt/pausiert sind.
InterlockedExchange oder besser
AtomicExchange
InterlockedCompareExchange / AtomicCmpExchange
InterlockedExchange64
InterlockedExchangePointer
InterlockedDecrement / AtomicDecrement
InterlockedIncrement / AtomicIncrement
uvm.