用时间控件还是do.doevents.loop?该如何处理

用时间控件还是do...doevents...loop?
还用程序点了一个打开窗口的按钮,接下来是检查窗口有没有打开,我是用时间控件来检查窗口,还是用
do
检查窗口代码
doevents
loop

哪种好一点?

------解决方案--------------------
timer
------解决方案--------------------
do
检查窗口代码
doevents
loop
这个代码执行,CPU基上是100%的.用Timer就不同了.
------解决方案--------------------
do
' do sth.
sleep 1
doevents
loop

timer 在某些情况下不适用
------解决方案--------------------
在Form 的Active 事件中做一个记录然后用Timer 会比较洽当!
------解决方案--------------------
都不好,用我的方法试试
两个窗体form1和form2,form2启动后告诉form1

'form1代码如下:
Option Explicit
Private WithEvents mform As form2
Private Sub Command1_Click()
Set mform = form2
form2.Show
End Sub

Private Sub mform_Opened()
MsgBox "窗口已经打开 "
End Sub

'form2代码如下:
Option Explicit
Public Event Opened()
Private Sub Form_Activate()
RaiseEvent Opened
End Sub