Нет, структуры в .NET не являются потокобезопасными.
Однако семантика копирования по значению, структура которой имеет большое значение для этого преобразования.
Если вы передаете свои структуры вокруг и каким-то образом присвоите их переменным или параметрам pass-by-value (без ссылок или ссылок), тогда используется копия .
Конечно, это означает, что любые изменения, внесенные в копию, не отражаются в исходной структуре, но это то, о чем нужно знать при их прохождении.
Если вы обращаетесь к структуре напрямую в форме, не связанной с семантикой копирования по значению (например, для доступа к статическому полю, являющемуся типом структуры, и как Marc Gravel points out in his answer, существует много других способов) через несколько потоков, тогда вы должны учитывать безопасность потока экземпляра.
Это зависит. Что вы делаете со структурой? – SLaks
Кроме того, вы не должны создавать изменчивую структуру. http://stackoverflow.com/questions/441309/why-are-mutable-structs-evil – SLaks
В соответствии с этим http://stackoverflow.com/questions/2353014/are-c-structs-thread-safe/2353051#2353051 вам следует. –