VB6.0开发winform程序中使用DoEvents应当注意什么
VB6.0开发winform程序中使用DoEvents应该注意什么?
如标题,使用DoEvents 会不会使得windows程序变得无法响应,望高手们不吝赐教哈!
------解决方案--------------------
首先要了解DoEvents的原理。
DoEvents相当于在当前过程内部调用了事件处理函数(如果有新的事件产生)。
因此和递归调用很类似,要避免两点,一个是全局变量的冲突,一个是无限递归。
要避免前者,一个是少用或者不用全局变量,尤其是控件、窗体。一个是如果非要使用,应该用一个变量将全局变量当前值保存起来,在事件处理完毕后恢复,以便外层函数的正确调用。
要避免无限递归,就是要避免在DoEvents中直接触发新的相同的事件。
如标题,使用DoEvents 会不会使得windows程序变得无法响应,望高手们不吝赐教哈!
------解决方案--------------------
首先要了解DoEvents的原理。
DoEvents相当于在当前过程内部调用了事件处理函数(如果有新的事件产生)。
因此和递归调用很类似,要避免两点,一个是全局变量的冲突,一个是无限递归。
要避免前者,一个是少用或者不用全局变量,尤其是控件、窗体。一个是如果非要使用,应该用一个变量将全局变量当前值保存起来,在事件处理完毕后恢复,以便外层函数的正确调用。
要避免无限递归,就是要避免在DoEvents中直接触发新的相同的事件。