¿Cuál es la diferencia entre fijo y en condiciones de riesgo
Pregunta
¿Por qué hay 2 maneras diferentes de bloqueo de memoria en su lugar en .NET? ¿Cuál es la diferencia entre ellos?
Solución
La declaración fija se utiliza en el contexto de la inseguro modificador . Insegura declara que el uso que se va puntero aritmética (por ejemplo: bajo nivel de llamada API), que está fuera de las operaciones normales de C #. El fija comunicado se utiliza para bloquear la memoria de coloque por lo que el recolector de basura no se reasignará que mientras que todavía está en uso. No se puede utilizar la sentencia fija fuera del contexto de inseguridad.
Ejemplo
public static void PointyMethod(char[] array)
{
unsafe
{
fixed (char *p = array)
{
for (int i=0; i<array.Length; i++)
{
System.Console.Write(*(p+i));
}
}
}
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow