Добавить к ответу Барри: Определенно, потокобезопасно, если передаваемая строка получена из локальной переменной внутри области действия вызывающих.
В этом случае эта локальная переменная будет содержать действительную ссылку иЕдинственный способ (предполагая только действительный код на паскале, не возиться в asm) для этой локальной переменной, которая будет изменена, - это если ваш вызов возвращает.
Это также включает все случаи, когда источник строковой переменной является результатомвызов функции (включая доступ к свойству, например, TStrings.Strings []), потому что в этом случае компилятор должен хранить строку в локальной переменной temp.
Проблемы с безопасностью потока могут возникнуть, только если вы передаете напрямуюстрока из места, где эта строка может быть изменена (тем же или другим потоком) до того, как ваш вызов вернется.