5

为什么在 .NET 中有两种不同的方式锁定内存?它们之间有什么区别?

4

1 回答 1

16

fixed 语句在unsafe 修饰符的上下文中使用。Unsafe 声明您将使用指针算术(例如:低级 API 调用),这超出了正常的 C# 操作。固定语句用于将内存锁定到位,以便垃圾收集器在它仍在使用时不会重新分配它。您不能在不安全的上下文之外使用固定语句。

例子

public static void PointyMethod(char[] array)
{
    unsafe
    {
        fixed (char *p = array)
        {
            for (int i=0; i<array.Length; i++)
            {
                System.Console.Write(*(p+i));
            }
        }
    }
}
于 2009-02-27T13:13:19.797 回答