【发布时间】:2023-03-28 18:19:01
【问题描述】:
我有一个定期执行 HTTP 发布的应用程序(从 SQL 检索的数据)。每 30 秒最多生成 50 个线程并同时运行 HTTP 帖子。如果一个帖子失败,它会等待 2 倍,只要间隔设置为。这会发生两次。例如,30s、60s 和 120s。
我使用普通的Thread.Start() 来启动这个进程,但是我发现在实时服务器上,它完全耗尽了 CPU。
我的问题如下:
- 是否有更好的类用于线程性能?
- 有没有办法限制 .NET 中的线程应用程序 CPU 使用率?
谢谢,
凯尔
【问题讨论】:
-
你的重试逻辑有缺陷,它应该小于间隔,否则它只会排队到无穷大:)
-
恐怕需要这样。它只会在当前批次完全排序后运行下一个批次,因此不会无限期地运行。
标签: c# performance multithreading