2011-03-19 69 views
2

我想知道的主要问题是,让我们说一个按钮的动作会导致自己被删除。我的意思是,一个动作侦听器已经添加到按钮中,并且该动作事件想要在按钮被调用时被销毁。但它不能只是调用删除它,它需要一些如何标记为删除,当按钮完成它的事件,它会被删除。GUI中的内存管理

对我来说,这里有两个主要问题:因为我的GUI是多态的,指针可能来自DLL中的工厂。另外,即使我将按钮添加到删除队列,该队列何时应该出队?每次我的游戏获得更新()时,我应该检查队列吗?

这是如何通常在GUI中完成的,例如您可以从BaseButton创建SuperButton。

谢谢

回答

3

通常在GUI中有处理异步输入消息的消息循环。假设你有这样的事情,通常的做法是向这个队列发布消息,这将导致控制被删除。因为消息队列在事件处理程序完成后被抽取,所以您没有任何问题。