c# - Thread.Sleep() 用于防止服务器过载

标签 c# multithreading

我编写了一些代码,将大量用户导入到 AD 中。为了避免服务器过载,我在代码中放置了一个 thread.sleep(),在每次迭代时执行。

这是对方法的一个很好的使用,还是有更好的替代方法(此处适用.NET 4.0)?

Thread.Sleep() 是否有助于提高性能?休眠线程对成本和性能有何影响?

最佳答案

Thread.Sleep() 方法只会让线程在指定的时间内处于暂停状态。我可以告诉您有 3 种不同的方法可以实现相同的 Sleep() 从三种不同类型调用方法。它们都有不同的特点。不管怎样,最重要的是,如果您在主 UI 线程上使用 Sleep(),它将在暂停期间停止处理消息,并且 GUI 看起来会被锁定。您需要使用 BackgroundWorker 来运行您需要休眠的作业。

我的意见是使用 Thread.Sleep() 方法并遵循我之前的建议。在您的具体情况下,我想您不会有任何问题。如果您努力寻找关于 SO 的完全相同的主题,我相信您会找到关于我之前总结的更好的解释。

如果您无法从被调用的服务接收反馈,就像在典型的事件驱动系统上发生的那样(抽象地讲..我们也可以说回调或任何信息来了解服务如何受到您的影响调用),Sleep 可能是解决之道。

关于c# - Thread.Sleep() 用于防止服务器过载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731234/

相关文章:

c# - 当我修改一个单独的变量时,为什么这个 List<T> 会更新?

C# 应用程序进程在一段时间后挂起

c# - native 动态 Linq (C#)

android - 当我在 AsyncTask 或 Thread 中将 HTTP 更改为 HTTPS 时出现 NetworkOnMainThreadException

c# - 如何处理任务并行库中的目录文件?

c# - 从服务器端线程更新面板

c# - 当泛型类型匹配采用该类型的重载方法时,Visual Studio 2015 不编译

c# - 为每个 appender 创建不同的 log4net.ILog 实例

java - 检查java类循环中的变量和语句依赖性

java - onClickListener 没有被第二次调用 Android