if I have a property of TimeSpan in my class, that is accessed by multiple threads (both read and write), do I have to lock on something while reading/writing to it? Putting lock (_some_object) inside both get and set for instance?
I've read that properties are not thread safe. But I don't know how it works specifically with structs. What I want is to avoid unexpected behaviour or crash while writing to the property and reading it at the same time. I've also read a lot about atomicity, immutability ..
But I'm still not sure if I have to concern in my specific case.
Do I have to do something like this?
public TimeSpan MinDataTimeStep
{
get
{
lock (mMinDataTimeStepLock)
{
return mMinDataTimeStep;
}
}
set
{
lock (mMinDataTimeStepLock)
{
mMinDataTimeStep = value;
}
}
}