-6

Guys is there any option in c# like in VB?

Sub Delay(ByVal dblSecs As Double)

Const OneSec As Double = 1.0# / (1440.0# * 60.0#)
Dim dblWaitTil As Date
Now.AddSeconds(OneSec)
dblWaitTil = Now.AddSeconds(OneSec).AddSeconds(dblSecs)
Do Until Now > dblWaitTil
Application.DoEvents() ' Allow windows messages to be processed
Loop

End Sub
4

3 回答 3

0

您需要适合您需要的Timer类或DispatcherTimer类。

于 2013-03-24T11:13:21.770 回答
0

是的,您可以在 C# 中做同样的事情,但这是一个非常糟糕的主意。

这种暂停的方式称为忙循环,因为它会使主线程使用尽可能多的 CPU。

你想要做的是设置一个计时器,并从 tick 事件中调用一个回调方法:

public void Wait(double seconds, Action action) {
  Timer timer = new Timer();
  timer.Interval = (int)(seconds * 1000.0);
  timer.Tick += (s, o) => {
    timer.Enabled = false;
    timer.Dispose();
    action();
  };
  timer.Enabled = true;
}

使用示例:

textbox.text = "Test";
Wait(5.0, () => {
  textbox.text = "Finish";
});
于 2013-03-24T11:19:44.907 回答
0

Patterson 算法将适用于我认为的调度程序。

http://en.wikipedia.org/wiki/Sardinas%E2%80%93Patterson_algorithm

于 2013-03-24T11:17:41.770 回答