2
何時使用fixed()語句進行固定?我看到很多例子,包括這個來自Microsoft:何時需要鎖定以避免C#垃圾回收器移動對象?
public class Win32API {
[DllImport("User32.Dll")]
public static extern void GetWindowText(int h, StringBuilder s,
int nMaxCount);
}
public class Window {
internal int h; // Internal handle to Window.
public String GetText() {
StringBuilder sb = new StringBuilder(256);
Win32API.GetWindowText(h, sb, sb.Capacity + 1);
return sb.ToString();
}
}
什麼阻止垃圾收集器從GetWindowText函數中移動StringBuilder對象()調用,他們爲什麼不釘扎某人與固定()語句?
其中之一是因爲固定語句實際上並未固定對象。 pinvoke編組的職責是真正固定,但僅在必要時。不在這裏,charset是錯誤的。 – 2012-02-15 03:09:56