Я хотел бы использовать свой собственный класс с несколькими свойствами. Я могу использовать read
и write
, чтобы настроить, как и какую (например) частную переменную писать или читать.Являются ли свойства класса потокобезопасными в delphi?
Примером может быть целым (MyInteger
) в этом классе:
type
TMyClass = class
private
MyInteger : Integer;
function SomeFunction : Integer;
public
property TheInteger : Integer read SomeFunction write MyInteger;
end;
было бы безопасно, если (например) класс будет постоянно доступа (чтение) MyInteger
, а другой поток обращается к TheInteger
(запись) из другой поток текущего экземпляра?
Надеется, что вы, ребята, знаете, что я имею в виду ... В принципе, я не знаю, если это безопасно в общем, если несколько потоков обращается к вару в памяти, в то же время ... (без критических секций)
EDIT :
будет ли также разница между этим классом:
type
TMyClass = class
private
MyInteger : Integer;
function SomeFunction : Integer;
public
property TheInteger : Integer read MyInteger write MyInteger;
end;
и это:
type
TMyClass = class
private
function SomeFunction : Integer;
public
MyInteger : Integer;
end;
?
http://stackoverflow.com/a/17706947/62576 –
Нет, это не поточно-, вам нужно защитить общие ресурсы от одновременного доступа, будь то с критической секции или заблокированном API, что это ваш выбор. –
@KenWhite Это не то, что я хотел знать. Я думал, используя команды 'read' и' write', delphi может автоматически позаботиться о состоянии гонки с его собственными критическими разделами. –