1
0
mirror of https://github.com/loginov-dmitry/multithread.git synced 2025-02-19 20:10:30 +02:00

Исправление threadvar

This commit is contained in:
loginov-dmitry 2020-08-15 22:42:42 +03:00
parent ab72b1d439
commit 3814115f08

View File

@ -1989,7 +1989,7 @@ end;
# 6. Планирование потоков <a name="os_scheduler"></a>
В разделе 1.3 были коротко сказано о том, что в операционной системе имеется планировщик (scheduler), который отвечает за распределение процессорного времени между потоками. Я считаю, что читатель должен иметь хотя бы минимальное представление о работе планировщика. Благодаря этому усвоение такого сложного материала, как синхронизация между потоками, должно пройти легче.
В разделе 1.3 было коротко сказано о том, что в операционной системе имеется планировщик (scheduler), который отвечает за распределение процессорного времени между потоками. Я считаю, что читатель должен иметь хотя бы минимальное представление о работе планировщика. Благодаря этому усвоение такого сложного материала, как синхронизация между потоками, должно пройти легче.
# 6.1 Роль системного таймера (system clock) <a name="os_timer"></a>
@ -2108,7 +2108,7 @@ end;
3. Поток сохраняет найденный объект `TUniGUIApplication` в переменной, объявленной в секции `threadvar`.
4. Поток запускает необходимые обработчики событий (например, OnClick). Из этих обработчиков событий можно смело вызывать функции `UniApplication`, `UniMainModule`, `MainmForm` и т.д.
:warning: **Внимание!** Согласно официальной документации, в секции `threadvar` нельзя объявлять переменные некоторых типов, в том числе: Pointer, Function, а также типы, работающие по принципу copy-on-write, например `string`.
:warning: **Внимание!** Следует быть осторожным при объявлении в секции `threadvar` некоторых типов (строки, динамические массивы, варианты, интерфейсы). Причины этого хорошо описаны в [официальной документации](http://docwiki.embarcadero.com/RADStudio/Rio/en/Variables_(Delphi)#Thread-local_Variables).
<!--
:warning: **Внимание!**