只是创建和处理Gtk.Window对象似乎会导致内存泄漏。
例如,以下代码示例快速占用大于1GB(如Linux系统监视器所示 - 几秒钟后VM和驻留内存):
for(int i = 0 ; i < 10485760; i++)
new Gtk.Window(Gtk.WindowType.Popup).Dispose();
此GTK常见问题解答页面指的是需要调用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();
它似乎没有任何区别。
有没有人知道在这个用例中防止内存泄漏的意思是什么?
答案 0 :(得分:0)
这似乎可以防止内存泄漏。
var window = new Gtk.Window(Gtk.WindowType.Popup);
window.Destroy();
window.Dispose();