-6

在许多语言中,有一个

等待(毫秒)

或者

睡眠(毫秒)

命令,这只会使您的程序在睡眠结束之前不再执行任何代码(这并不意味着它会停止正在运行的代码,它只是暂停运行更多。在 C# 中有这样的命令吗?

Thread.Sleep(time) 不起作用,它也会暂停当前正在执行的所有代码(基本上会冻结你的程序)

4

6 回答 6

2

Thread.Sleep(int milliseconds)

是你要找的

于 2013-07-26T22:52:55.807 回答
1

在 C# 中,默认情况下一切都在一个线程上运行。如果你愿意,你可以创建另一个线程来运行一段特定的代码。然后,您可以休眠该线程,这样您的应用程序就不会冻结。

查看此问题以获取更多信息:如何在新线程中运行一些简单的代码?

于 2013-07-26T23:01:18.253 回答
0

你会想要验证语法,因为我只是在尝试,但这将在指定的时间内进入一个非阻塞循环......

// Set the wait time
double waitTime = 5.0;

// Get the current time
DateTime start = DateTime.Now;

// Check the wait time
while(DateTime.Now.Subtract(start).TotalSeconds < waitTime)
{
    // Keep the thread from blocking
    Application.DoEvents();
}

假设您使用的是 Windows 窗体。如果您使用的是 WPF:

//Application.DoEvents();
this.Dispatcher.Invoke(DispatcherPriority.Background, new Action(() => { }));

同样,您需要先验证语法...

于 2013-07-27T00:10:31.097 回答
0

是的:

Thread.Sleep(milliseconds)

http://msdn.microsoft.com/es-es/library/system.threading.thread.sleep(v=vs.80).aspx

于 2013-07-26T22:53:06.667 回答
0

是的,有。

Thread.Sleep(milliseconds)

例如,如果你使用Thread.Sleep(5000),它会让线程休眠 5 秒。阅读更多@MSDN

于 2013-07-26T22:53:51.580 回答
0

Thread.Sleep(milliseconds)应该为你做

于 2013-07-26T22:53:58.533 回答