c#中线程中挂起和休眠之间的区别


Thread.Sleep(5000);
stopwatch.Stop();
Console.WriteLine(stopwatch.ElapsedMilliseconds);
Thread.suspend(5000);
Console.WriteLine(stopwatch.ElapsedMilliseconds);

Sleep用于单个线程,它会将线程挂起一段时间。而suspend已被弃用。

另请查看MSDN中关于Suspend:的备注

不要使用Suspend和Resume方法来同步线程的活动。你无法知道线程的代码在挂起线程时正在执行。如果在在安全权限评估期间持有锁,中的其他线程AppDomain可能被阻止。如果挂起线程执行类构造函数时,AppDomain中的其他线程尝试使用该类的操作被阻止。死锁很可能发生容易地

Sleep表示线程在5000毫秒内休眠。suspend表示在恢复线程启动时线程停止。

最新更新