Bueno, la mejor práctica es que las estructuras siempre deben ser inmutables (excepto en algunos escenarios muy específicos, e incluso en riesgo). Y la información inmutable siempre es segura para hilos. Entonces, si siguió las mejores prácticas e hizo esto:
struct Data
{
readonly int _number;
public int Number { get { return _number; } }
public Data(int number) { _number = number; }
}
then yes; eso es seguro para subprocesos En todos los demás casos, la respuesta es "probablemente no".
Tenga en cuenta también que las reglas se aplican atomicidad, por lo que incluso una sola lectura o actualización de DadData.TheData
no se puede suponer a ser flujos seguros, incluso con una estructura inmutable. Usted podría (especialmente para las estructuras sobredimensionadas) tener un hilo leyendo la estructura, mientras que otro hilo lo vuelve a escribir; sin sincronización, sucederán cosas malas (eventualmente).
Depende. ¿Qué estás haciendo con la estructura? – SLaks
Además, no debe hacer una estructura mutable. http://stackoverflow.com/questions/441309/why-are-mutable-structs-evil – SLaks
De acuerdo con este http://stackoverflow.com/questions/2353014/arec-c-structs-thread-safe/2353051#2353051 debieras. –