【发布时间】:2012-12-01 20:39:15
【问题描述】:
我会尽量澄清我的问题:
我有一个名为 Draw 的函数(某人(XNA)每秒调用她 60 次), 我有很多对象要绘制,所以我有以下代码: 无效绘图() { obj1.draw(); obj2.draw(); obj3.draw(); …… }
如果我将创建一个由 Draw() 引发的事件,并且所有对象都将注册该事件,是否会对性能产生影响?
如果我不清楚我要问的是: 通过注册事件来调用函数是否与常规调用不同?
【问题讨论】:
-
我无法评论性能,但听起来切换到事件驱动系统会大大提高代码的可维护性,并且肯定是更好的设计。
-
此外,事件处理程序通常在它们自己的线程上运行。函数调用在同一个线程上运行。由于您在谈论绘图,我认为这将涉及 UI 操作,因此您需要小心。
-
@ryadavilli 我敢肯定,如果您正常触发它们,事件处理程序不会在自己的线程中触发。事件处理程序在当前线程上按顺序执行。