4
为什么有两种不同的方式在.NET中锁定内存?他们有什么区别?固定和不安全有什么区别
为什么有两种不同的方式在.NET中锁定内存?他们有什么区别?固定和不安全有什么区别
固定语句用于unsafe modifier的上下文中。不安全声明您将使用指针算术(例如:低级API调用),该算法不在正常的C#操作中。 fixed语句用于锁定内存,以便垃圾收集器在仍处于使用状态时不会重新分配它。您不能在不安全的情况之外使用固定语句。
例
public static void PointyMethod(char[] array)
{
unsafe
{
fixed (char *p = array)
{
for (int i=0; i<array.Length; i++)
{
System.Console.Write(*(p+i));
}
}
}
}
使我不知道为什么有明确需要指定的代码块/方法是不安全的,编译器必须知道它时,它看到的固定语句。 – arul 2009-02-27 13:19:37