0

只是创建和处理 Gtk.Window 对象似乎会导致内存泄漏。

例如,下面的代码示例很快就占用了超过 1GB 的空间(如 Linux 系统监视器所示 - 几秒钟后 VM 和常驻内存):

for(int i = 0 ; i < 10485760; i++)
  new Gtk.Window(Gtk.WindowType.Popup).Dispose();

本 GTK FAQ 页面参考需要调用 ref + sink gtk faq (1.5)

但我都试过了

var window = new Gtk.Window(Gtk.WindowType.Popup).Ref().Sink(); 
window.Unref();
window.Destroy();

new Gtk.Window(Gtk.WindowType.Popup).Destroy();

它似乎没有任何区别。

有谁知道在这个用例中防止内存泄漏意味着什么?

4

1 回答 1

0

啊 - 回答我自己的问题。

这似乎可以防止内存泄漏。

var window = new Gtk.Window(Gtk.WindowType.Popup);
window.Destroy();
window.Dispose();
于 2012-08-29T16:19:53.570 回答