我想让一个线程进入睡眠状态,而我没有睡眠方法。
我使用System.Threading
。
在我的代码中,我写道:
Thread t = new Thread(StartPointMethod);
t.
在方法列表中没有睡眠....
可能是什么问题?
答案 0 :(得分:15)
此睡眠当前线程的代码为20秒。
System.Threading.Thread.Sleep(20000);
答案 1 :(得分:12)
在您想要睡觉的新线程的任何方法中使用此方法。
System.Threading.Thread.Sleep(500);
答案 2 :(得分:10)
Sleep是'Thread'上的静态方法,而不是实例方法。因此,使线程睡眠的方法是在其中执行方法中有一个Thread.Sleep语句。
由于Thread.Sleep将始终使执行线程休眠,您可以在下面示例的行中执行某些操作。
private void Foo()
{
Thread t = new Thread(new ThreadStart(ThreadWorker));
t.Start();
t.Join();
}
private void ThreadWorker()
{
Console.WriteLine("Prior to sleep");
Thread.Sleep(100);
Console.WriteLine("After sleep sleep");
}
答案 3 :(得分:4)
线程A无法告诉线程B进入休眠状态。也就是说,你不能写:
Thread t = new Thread(...);
t.Start();
t.Sleep();
你可以 suspend一个帖子,然后稍后恢复,但这是一个非常糟糕的主意。这样做可能会带来各种潜在的灾难性后果。 Thread.Suspend
已被淘汰的原因。
在普通代码中(即在编写调试器和OS级别的东西之外),永远不会有充分的理由暂停线程。并且几乎从来没有一个很好的理由来致电Thread.Sleep
。如果您发现需要暂停或睡眠线程,那么您几乎肯定会遇到一个需要解决的设计问题。
答案 4 :(得分:2)
你必须使用这段代码:
Thread.Sleep(5);
答案 5 :(得分:2)
为了扩展上面的(正确)答案,Thread.sleep是一个静态方法。静态方法与类(Thread)相关联,但不与类的特定实例相关联。
因此,要调用Thread.Sleep - 你只需编写(如上所述)“Thread.Sleep(msecs)” - 你不需要创建一个线程来调用该方法。
答案 6 :(得分:-1)
Thread.Sleep(milliseconds) 让当前线程休眠 x 毫秒。一个线程无法让另一个线程进入睡眠状态。 Thread.Sleep 总是指向当前线程。
答案 7 :(得分:-2)
System.Thread 有一个专门为此创建的函数。
System.Threading.Thread.Sleep(100)
Sleep 函数接受一个以毫秒为单位的参数。