我希望让一个线程休眠,但是我没有找到休眠方法。
我正在使用 System.Threading
库。
在我的代码中,我写了:
Thread t = new Thread(StartPointMethod);
t.
在方法列表中没有Sleep....可能的问题是什么?请注意,Sleep()是一个延迟函数,它暂停代码执行一段时间。
我希望让一个线程休眠,但是我没有找到休眠方法。
我正在使用 System.Threading
库。
在我的代码中,我写了:
Thread t = new Thread(StartPointMethod);
t.
这段代码用于使当前线程休眠20秒钟。
System.Threading.Thread.Sleep(20000);
t.Join(20000)
不会导致另一个线程休眠,它只是等待另一个线程终止的时间长达20秒。如果线程在该期间内没有终止,Join
将返回,但另一个线程不受影响。 - Jim Mischel在新线程中,如果想要让方法休眠,请使用此方法。
System.Threading.Thread.Sleep(500);
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");
}
线程A无法告诉线程B去休眠。也就是说,你不能这样写:
Thread t = new Thread(...);
t.Start();
t.Sleep();
Thread.Suspend
已被弃用。Thread.Sleep
。如果您发现需要暂停或休眠线程,则几乎肯定存在需要解决的设计问题。您需要使用以下代码:
Thread.Sleep(5);
为了更详细地解释上面的(正确的)答案,Thread.sleep是一个静态方法。静态方法与一个类(线程)关联,但不与类的特定实例关联。
因此,要调用Thread.Sleep - 只需编写(如上所述)“Thread.Sleep(msecs)” - 您不需要创建线程来调用该方法。
Thread.Sleep(milliseconds) 允许当前线程休眠 x 毫秒。没有办法让一个线程使另一个线程休眠。Thread.Sleep 总是指当前线程。
System.Thread有一个专门用于此的函数。
System.Threading.Thread.Sleep(100)
Sleep函数接受一个以毫秒为单位的参数。