¿Las variables de clase Delphi tienen almacenamiento local global o de subprocesos?

StackOverflow https://stackoverflow.com/questions/82113

  •  09-06-2019
  •  | 
  •  

Pregunta

Supongo que las variables de clase ("class var") son verdaderamente globales en el almacenamiento (es decir, una instancia para toda la aplicación).

Pero me pregunto si este es el caso, o si son subprocesos almacenados (por ejemplo, similar a un "threadvar"), una instancia por subproceso.

¿Nadie sabe?

Editar:Cambié "alcance" a "almacenamiento", ya que esta es, de hecho, la terminología correcta y lo que busco (gracias Barry)

¿Fue útil?

Solución

Sí, las variables de clase tienen un alcance global.Eche un vistazo a la fuente RTL para obtener detalles sobre cómo se implementan los threadvars.En Win32, a cada subproceso se le puede asignar un bloque de memoria automáticamente en el momento de la creación del subproceso.Esta área de datos adicional es lo que se utiliza para contener sus threadvars.

Otros consejos

Las variables de clase tienen un alcance de acuerdo con los atributos de visibilidad de sus miembros y tienen almacenamiento global, no almacenamiento de subprocesos.

El alcance es un concepto sintáctico y se relaciona con qué identificadores son visibles y desde dónde.Lo que nos preocupa aquí es el almacenamiento de la variable.

Las variables de clase son como clases:global y único para la aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top