2011-05-20 111 views
0

我有三个事件触发按钮单击。Vb.Net等待进程30secs

运行第一个事件后,我想等待30秒等待nex事件触发。

我该如何等待(我的意思是循环30秒)。

感谢, 纳格

+0

使用计时器...... – 2011-05-20 09:51:48

+0

http://msdn.microsoft.com/en-us/magazine/cc164015.aspx – 2011-05-20 09:52:11

回答

6

你可以试试这个直接代码:

MessageBox.Show("Test") ' Execute your method 1 
    System.Threading.Thread.Sleep(30000) 
    MessageBox.Show("Test2") ' Proceed with the other one :) 
0

可以使用线程System.Threading.Thread.Sleep(30000);举行执行。

0

使用定时器,并设置为30秒的间隔到定时器(1sec = 1000)

timer1.Interval=30000 
2

如果等待UI线程还是会阻塞整个用户界面和Windows会显示您的应用程序无响应。

不如:

  • 更新UI,以显示它是忙,包括禁用控制以阻止用户输入。
  • 使用定时器控件(详细信息取决于WinForms或WPF)在时间延迟后触发事件
  • 在定时器的事件处理程序中执行该操作。

如果工作是CPU或IO密集型(即可能阻塞超过几十毫秒),则在线程池中执行该工作(例如,BackgroundWorker组件)。请记住,您需要使用Control.Invoke从工作线程对UI进行任何更改。